From 96d7bbcf5f2759d855e6a8e2a946c8b75331c5b1 Mon Sep 17 00:00:00 2001 From: Michael Nolan Date: Thu, 26 Aug 2021 04:14:12 -0500 Subject: [PATCH] compile --- .gitignore | 4 +- packages/AsyncEnumerator.4.0.2/.signature.p7s | Bin 0 -> 9471 bytes .../lib/net45/AsyncEnumerable.dll | Bin 0 -> 148992 bytes .../lib/net45/AsyncEnumerable.xml | 1812 +++++++++++++++++ .../lib/net461/AsyncEnumerable.dll | Bin 0 -> 139776 bytes .../lib/net461/AsyncEnumerable.xml | 1675 +++++++++++++++ .../lib/netstandard1.4/AsyncEnumerable.dll | Bin 0 -> 148992 bytes .../lib/netstandard1.4/AsyncEnumerable.xml | 1812 +++++++++++++++++ .../lib/netstandard2.0/AsyncEnumerable.dll | Bin 0 -> 139776 bytes .../lib/netstandard2.0/AsyncEnumerable.xml | 1675 +++++++++++++++ .../lib/netstandard2.1/AsyncEnumerable.dll | Bin 0 -> 139776 bytes .../lib/netstandard2.1/AsyncEnumerable.xml | 1675 +++++++++++++++ .../.signature.p7s | Bin 0 -> 18702 bytes .../Icon.png | Bin 0 -> 7006 bytes .../LICENSE.TXT | 23 + .../THIRD-PARTY-NOTICES.TXT | 980 +++++++++ .../net461/Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 22144 bytes .../net461/Microsoft.Bcl.AsyncInterfaces.xml | 223 ++ .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 22120 bytes .../Microsoft.Bcl.AsyncInterfaces.xml | 223 ++ .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 15976 bytes .../Microsoft.Bcl.AsyncInterfaces.xml | 8 + .../useSharedDesignerContext.txt | 0 23 files changed, 10108 insertions(+), 2 deletions(-) create mode 100755 packages/AsyncEnumerator.4.0.2/.signature.p7s create mode 100755 packages/AsyncEnumerator.4.0.2/lib/net45/AsyncEnumerable.dll create mode 100755 packages/AsyncEnumerator.4.0.2/lib/net45/AsyncEnumerable.xml create mode 100755 packages/AsyncEnumerator.4.0.2/lib/net461/AsyncEnumerable.dll create mode 100755 packages/AsyncEnumerator.4.0.2/lib/net461/AsyncEnumerable.xml create mode 100755 packages/AsyncEnumerator.4.0.2/lib/netstandard1.4/AsyncEnumerable.dll create mode 100755 packages/AsyncEnumerator.4.0.2/lib/netstandard1.4/AsyncEnumerable.xml create mode 100755 packages/AsyncEnumerator.4.0.2/lib/netstandard2.0/AsyncEnumerable.dll create mode 100755 packages/AsyncEnumerator.4.0.2/lib/netstandard2.0/AsyncEnumerable.xml create mode 100755 packages/AsyncEnumerator.4.0.2/lib/netstandard2.1/AsyncEnumerable.dll create mode 100755 packages/AsyncEnumerator.4.0.2/lib/netstandard2.1/AsyncEnumerable.xml create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/.signature.p7s create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/Icon.png create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/LICENSE.TXT create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/THIRD-PARTY-NOTICES.TXT create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/net461/Microsoft.Bcl.AsyncInterfaces.dll create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/net461/Microsoft.Bcl.AsyncInterfaces.xml create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/useSharedDesignerContext.txt diff --git a/.gitignore b/.gitignore index ff6d771..d37cc60 100644 --- a/.gitignore +++ b/.gitignore @@ -21,9 +21,9 @@ # NuGet Packages *.nupkg # The packages folder can be ignored because of Package Restore -**/packages/* +!**/packages/* # except build/, which is used as an MSBuild target. -!**/packages/build/ +#!**/packages/build/ # Uncomment if necessary however generally it will be regenerated when needed #!**/packages/repositories.config diff --git a/packages/AsyncEnumerator.4.0.2/.signature.p7s b/packages/AsyncEnumerator.4.0.2/.signature.p7s new file mode 100755 index 0000000000000000000000000000000000000000..6ec5f4fa6f89f75fa932726accb0afc1703bcef5 GIT binary patch literal 9471 zcmds-cUV)|y2eQeq4(ZHQ>5-Bbde$*1Qeu*1wtrBN+1bcg@mREQUpN-DT<(?NE11z zh!jzLWI zGtUa4hvrbE#{r7;M<|3A$qul>8C_ybA?~y=D1?p%aQm$zB*y_}XYWoR;_$v&NG2wf z5>ib`Lj_PmDj@-+5?V<`3B06eiXk4=at#h}57><|HViy!V{E)%#V06G)6B_Wuc5!2 z!#*2(H4CDvSFnvgUc=OE7ZXzsh0Oq<&{hHzXm$=Q6as~EuzdJsn7_+-IdRzKSK&!O zle(_;6+`I2b-5#%0Y*5j9SqJ5wX;R?0^HOF6E}+?&J$@)xc!UUy2AT+nwcwY<|L>wxKovCzL^ykXI{cc<8 zsT;E|z9KYb9bH%!B6_a#rlBy}6(zD!adGdmnOGwELlcvV;y#4f9zsUR&9P^o)B;=H z_i7jBO&t3sF>QnC%SLpH50rE-3%Ip$9durF6i~fy@;p~<(JQ?Dj)qRHa9upQyGvPM zS(d%5Ao5L}ui+z%>UqB91DR(6eLAP|ELi1Nm7)AtCigIV+_s$LDo=O2o2;47Qg^(;7b){hd@?fFmNNq z0PNH@H?>U%(1L#eQR)RY7$1zsXe_UIHl>+@RNQx_pgplcu1B51z?S9|D=gC0=G1M)!W}e{Dg&Nu&;CefDY`UZSy?t4B%L^XaD%NzDLtJ|t zhhFcBG&6EcSH%exnvB{vhTP=p@+3#~g)?fWj@;X(fOxR0O!oA=^NQp^dX)Gl_lekF z`f5GR$_|f}GRlo@`yBl6gs%KdWH zhz~4ij~Z@P9^aX8aV&?}Qi8CIk9T5zB?eN`c4b>Ghkw?sfx5-I3;QbN=^0)qjqEKg zSYk3#&YPSDD0BcofeEaKE{st?*tw(HBf!?60-v^*;m4iJ{9g@SBpL~zP)HOtc)`#` zY5dRx2>&TTkbp9{SwMowZW6@SR3C--0V4)@H+O_B&eIp?>q*7QU&Zml>oSpWHqK(t zAo|zLNHf8guf7>wDA9Ur_%(dEFzYR<(|%QU2oTc6GtdyEi5?WAeLX zir7MAwN8F&^?cpl1gN^RZHU@Ken0X@r*ld z)UKF&<m4)R*4&Lwcb7b&CA*ZoUZrbi6qwcX%gK!Zh*Zbr=%d0JJ}&&RhSWTeIz+;nWt*G{u@ z%{H86ug&|Yuy3At|3P$#Ya~&hLO-N&<`@z2irtNtBA0Kmc6g+ge47vEIui^{-Q046wtJRD37^t7}<$j1L65SS0(1xRnS0Z5F% zQ4+~dOIaC@CHig22!O$6FKCSVdM_-7nlOl4Ix26x?)4XKW=PEz2Kq`^0tq0KsS6T^ zg#y8VR*puFT8zrZR0MC8zdMij@5iG5{#a}35)d#`z!=bgGf}g7%y(}ZC=8GTWH-Je z6v8J$T^JF36hG%iWrMx8)aSWAlJ*B?I@MQ&$uV8YAN8kw21i&gY zb;enpq|0U`TX~xlj?3%_EEGK~qNpWQKLKDmPcplFuiM35Uwr2Kgj^rOPW?{*Tx&`I z`@VAD{IgC2N2JMC99O^S`k%$Jaa-K#bT$l`QR9Kf&1V{09a>2$5vFHL=Kc1s;);Eb z6QplTH$K@em%Bq&NXuUqs;!iK<&g~MKqik#Zs^gY#g_^WAr5u>m#`#O7cMk#9nF5J z*Q{rl&pkQf#v;S88&#?nCk6nK>PuZRLj!&$;a}dOf z3rOrP1|fkm@+IrWa~$wr>B&oHdKM{W^RB+Rwo6>80?|q-$)iWT4N;{YxgP|sUUb_x z0Wxzh$V`oOX3}$(c{mLC1^DlMrtaFhlj~<@{u8hQwGUDQP}vkaAV85|Q)Qi}06Bgu zLAe1=aO1%kxS1S42?!F8g!e^qtVS%1o}1pr-OUH@>xQImLa-YXw}e%Ii91ONPw+(8 zxclLWI1-)^f^ZE%SmLk*JQ43f+UQIBH~Ri1TML7IYTtO&FW2aI2-&w^yzAC;ft`EC zBqS-?lC#|05u$J)p5Hpl@wq{sldZdKQ!uZWoOYZA3nxS7xuo~8SwUe!rwQ|ZzC72E z{hnCnv`9~toL;>^Q;u7qb}d$!Bs$H<(M{te7qSag+Jp!rxmOw3IO9DJxr7ErE_`qF zZgUeWbI{vAAto@^NU8#^4XCEOHqwX?DFpY~bLGr*GIt%rh9qzCl}{vEvwn$vm!|9S zvJ`*xWY0`_cGY8KkB6`HBiPw+Otpq5N0(H3e|E80A^UNybybig1 z?A7kN(mc*idEfJVD~IVLR^|8aI2^RbLO;M4P|ZQ-AY+t&W8qIcBOb+|6ftW8ToFrD z^hAO<_5S^^pAh=L4BN9tKqJ5aP+zNOKmyW2{w)A9z~P=`76=RikfS!J3FebvAnmFl9oCh@dTL>zeyP=T2nA?<0>mm)r)%quLRHOz!_Y#t z!Z9XVgP(3EUohAsLHG2P`+inDP1H560^w@ULCbsL=ZnxK=J1G2S-bOZd>U?BIvkXU zeA%;-(Y52qms`(bERzq+dE1QcEn;Io%Fy=@DLCyYZd+KeShWDhl<~~0=a&KH&ifonU_!fQQv!?E+NGNja=6_1w#gM`x+z}d36jDm1yK0J!9q5I z=MQ)7*5WpY0(k%kY}S>Gv`FU720a82*=#Vh>k1}#V zIaUkj-!8zRfE1hs)FUtmMSVXM0)ZkyIU~|^^dZPAz6THjJ z+B)gmi{6Yg#)0&V&0iX4B`#j$Jpqv8fWWJye?mP&IsPn5f;BOW0->SoJ$pFbBWwMcIOBCIVrt}PKH*}1hF#XzUsXI zb}bR-dvy@lq~%Dr>aCka%L?L`xpwE16u3qXt3H4pmsJ!izw2UY@jaKqEe=q)g@1hC zY)A?>6L=B6x!b6w57#_E;hLeEKCD~z0GJ-oKa7UJz%Y>nAFUX8LkQf;aOPEAxL^dK z=cfgbR1j_MAMhO@JboQ)!<{X({irk%!<2Q7k?5X!iOJkf@VI|ob)ecx6_kfbWH)0p zPcYw*ixalE%2Mb{LdK8)I|}$Az|@=ouzVMTBDk*=o}+WJ7XP+eJq`w0O=62i)z6oe;ufez0`ZMWHhN@rCy#D1KQyDbUh<3}y&sDO4SAQTZM=o|{W zDJbZwKp!i2UDW9b)w@ZQaZAv$RS$6qHHiMiY=Hb=>!SGq-nB)ufi4@4I=2GV#ZvlV zxf?eSTbHW^3Vl#hF>@nju{#i8y{m!P=(#opxI|+-0f7l19mNxHp`ghXKy*joeZ50K ziKj*#OUtdiF$7`fiwgvOK8*Le4+fS%I1e0l_1Pix*XAIFteRt>Km=Cn>(vSytqvj* zi9)Mts%kp@pZ|V;Rjoh4s2?eTsJwOUUVr10S)zkC>tdZ<1+xF0<*!yyzNtMG8{>-_G4;hI?2 z)6O&&eGR=s0fs1jEir#zTr+ckF+=OKHuo3N^y{K*JDMkR498NdoZtO|o{Dl= zJh+{+{8zr|YWrgmG6`#nl3WUqi+}I4Z8hTHfX{{+g0R3afOGEQoP)ptzyYx1W5oGj zJl&N&aUOsKAP&&O>EzjHp+Yd8#NpRMF+~Yyz3N^@9BVffPzV!L0@gDgShjlOJ@HE5 zKE)BiNTGVV%7MhyYt)&3ldpG!mT;yf*|uCAk4NcIf%L8E^nyP{;;MQwUs$+9JEGtj zHk2BKZSmc+c!G`fT~n26m7g_sNqWgUGTtO>CwAuIVjwClxg_X*(Zz=)Lr956a+&i4AwB10$J^fF_{k2`oyZY~ zfyA1Jxi@NdiB`00jCS5Rq-A|fH}R2&H}=M-?yG#Wp$vQT@1kN0rhz zwygi9F0*~of~)Y!v1{}L@57Jy=xMYk!$0UB4-si@z9n4Km6kj+`NezT)_F~(@Y?P7 zf;AhW@;`qrjy?M#;fc>^TSkSJxR_>E-R#A}*{J^d*5m$-@Ezs4Ly@f8>cSXwEEkz7 z(Pk^pcD8>ly=2jU>VnYMN1xCpAs@X{U}gyqhht zXn*mMG1<8yDnvCdxJVF{C{>Hn7e2stU8kgF@s0dMW!F%Ls1K)B%G|l9nS-WZs%_cY z)zV{v8*ewJqj}W)kp%C~VdWIh0lL!4UXW%e!aI1RR1IqMu+YmIw_&21qn-Vd^ z2kW}Z6s#W+klE}61q6luup7Y-11N2D1It8700EW=>vMy)BiDKXNL-!TjXL#e-UY2f zWk3;-&)Jc)Jw|3rr?t-y*vQ3-1khz%EsFoZ^JG{xRYW;qAVIH!dv)XFiubTa z_|DPZch)nxP2^Ma1&O>PdOL279G=bVws(v22jqIiF#H|}dw7Om!eRgEh4lN3-$jy5 zo(_CWp#9d8r2K}-+X_AYruBs9Txv7q?d2yL)$BGmTL)8VU6?F$mbd%xpnla&*Xysj zaQf|#CeMSOq1Sbz@=j%Gj&`sUPcDv2(I!O8wXNK~jv<5Wv;f(O-e70@aPhxd=yh`; zQZPw<%ipo{A7cyE(gP(L3cY!piP8knDDc9%V*AHsG#J!>e$-ja7I$OeT@5a5Kfk{T zirW9Pyspa*^Zd4JH9^JB&l?6jY(U;^wrsR9iMHyP)^2Xjj~KtLWM|8|2M{T~A3i zgAU%3HFn|nXYiZ4=9Q9x?&ITX)92I3+Z4W6XWW2jye^i}yToWaxx*pa@yKYjslG() z@cZ)D+e*XqY#l?++92VUskBD*FSKdLD`}>+Bpb@{!xMMnE^XlN3HYSyfUTa;e+zVa zRG^B(Gy(OW3_21~5p?a8f>tTFT6V26l}Ni*ot$| zRt(xeD2P-q00+ozv_YhbtKefh zt2}78BTUoS>cdHQxZ|1o4sj{03|$=mQj=a{3j4P6wQG%eD(?v8ZQOpJ71?Fam;SmV zXvXfm101tr=F9Fa@7uiwZFU6En9Jw4G++97-EzL1|3Hdc zcXr^mbx54(kMKO{T2yJJ#Cvf#Q>yqN=cxa6{YBOgjqACrFUw1MbS{QIk!&D6?=xYH zssA-urd0U+r)Y+cy`v--UzdFQP}U|x$9E%(raYI2Yu?j52r9|oA@E4|J>gUkr_rsm z;A!*}X%T~8Npe24|BTKc`XGh9p)v+)<)8h@!$>y}Nr5_nzXh=e-3EYs2Kc9N3FQd; z8RS2jWjW-lfY7F;0=kE+TWpg*^AACL<7ey7+=(H!2R@kPl1bC%E4Z5@tbRAnnQmWZ z?blI>Z^|*(K_mM&e-WyT1O+7k{)PpHs3*M$q&WfAv|`O4dVid!F=BCm0?}Tcvz<6x zDc*-!pqe`yznpe&7 zKf_LF?>zEqnhKX3{J4d3z{KZD##T!T^y3i&Qw`G2(|{R+tG)Q*loRgM0H%?ljlVP4 z_uxbSy*2Y>+R>#V2lIr;1)a~0ttKDhYjRQpVZ4ibzPG?cLXv|f1lu|CpAOq7vpiXx zV~Q(3#2{~FdanAoSQ3}Ljf_*@Hu-ZVbZoZ=ChRWWg@7kBI^lMPSJ_l&TUTUkY;b@Fbf{rfI7jHHBp SR-jbh=I~N%8aJFm4*w5IuPvzn literal 0 HcmV?d00001 diff --git a/packages/AsyncEnumerator.4.0.2/lib/net45/AsyncEnumerable.dll b/packages/AsyncEnumerator.4.0.2/lib/net45/AsyncEnumerable.dll new file mode 100755 index 0000000000000000000000000000000000000000..778b13f33626b02474f8bf5f88915180464e5ca9 GIT binary patch literal 148992 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%0As@LaQz4vBEXM%ohGm|1%<&4?NRYJI#|&+fbBpF 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 + + + AsyncEnumerable + + + + + Base abstract class that implements . + Use concrete implementation or . + + + + + Returns pre-cached empty collection + + + + + Helps to enumerate items in a collection asynchronously + + + + IAsyncEnumerable<int> ProduceNumbers(int start, int end) + { + return new AsyncEnumerable<int>(async yield => { + for (int number = start; number <= end; number++) + await yield.ReturnAsync(number); + }); + } + + async Task ConsumeAsync() + { + var asyncEnumerableCollection = ProduceNumbers(start: 1, end: 10); + await asyncEnumerableCollection.ForEachAsync(async number => { + await Console.Out.WriteLineAsync(number); + }); + } + + + + + + A pre-cached empty collection + + + + + Constructor + + A function that enumerates items in a collection asynchronously + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Similar to , but allows you to pass a state object into the enumeration function, what can be + used for performance optimization, so don't have to create a delegate on the fly every single time you create the enumerator. + + Type of items returned by + Type of the state object + + + + Constructor + + A function that enumerates items in a collection asynchronously + A state object that is passed to the + + + + A user state that gets passed into the enumeration function. + + + + + Creates an enumerator that iterates through a collection asynchronously + + Returns a task with the created enumerator as result on completion + + + + Creates an enumerator that iterates through a collection asynchronously + + Returns a task with the created enumerator as result on completion + + + + This exception is thrown when you call + or when the enumerator is disposed before reaching the end of enumeration. + + + + + Base type for and + + + + + Returns an empty . Safe to use by multiple threads. + + + + + Helps to enumerate items in a collection asynchronously. + Provides exactly the same functionality as , + but allows to pass a user state object in the enumeration function, + what can be used for performance optimization. + + + + + Constructor + + A function that enumerates items in a collection asynchronously + Any state object that is passed to the + Optional action that gets invoked on Dispose() + + + + Finalizer + + + + + A user state that gets passed into the enumeration function. + + + + + Gets the element in the collection at the current position of the enumerator + + + + + Tells if enumeration is complete. Returns True only after MoveNextAsync returns False. + + + + + Advances the enumerator to the next element of the collection asynchronously + + Returns a Task that does transition to the next element. The result of the task is True if the enumerator was successfully advanced to the next element, or False if the enumerator has passed the end of the collection. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + True if called from Dispose() method, otherwise False - called by GC + + + + Helps to enumerate items in a collection asynchronously + + + + + An empty . Safe to use by multiple threads. + + + + + The asynchronous version of the 'yield' construction + + + + + Gets the cancellation token that was passed to the method + + + + + Yields an item asynchronously (similar to 'yield return' statement) + + The item of the collection to yield + Returns a Task which tells if when you can continue to yield the next item + + + + Stops iterating items in the collection (similar to 'yield break' statement) + + Always throws this exception to stop the enumeration task + + + + Constructor + + A function that enumerates items in a collection asynchronously + Optional action that gets invoked on Dispose() + + + + Internal implementation details + + + + + Converts generic IEnumerable to IAsyncEnumerable + + + + + Creates adapter for + + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Converts generic IEnumerable to IAsyncEnumerable + + + + + Creates adapter for + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Creates adapter for the enumerator of + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Creates adapter for + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Extension methods for for backward compatibility with version 1 of this libraray. + Not recommended to use. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Creates an enumerator that iterates through a collection synchronously. + This method is marked as [Obsolete] to discourage you from using this synchronous version of + the method instead of , + what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Advances the enumerator to the next element of the collection synchronously. + This method is marked as [Obsolete] to discourage you from using this synchronous version of + the method instead of , + what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Creates an enumerator that iterates through a collection synchronously. + This method is marked as [Obsolete] to discourage you from using this synchronous version of + the method instead of , + what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Enables asynchronous 'foreach' enumeration over an IAsyncEnumerable + + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Class to provide access to static method. + + + + + Stops ForEachAsync iteration (similar to 'break' statement) + + Always throws this exception to stop the ForEachAsync iteration + + + + This exception is thrown when you call . + + + + + Extension methods for interface + + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + The message of an exception which is thrown when the source collection is empty. + The message of an exception which is thrown when the source collection has more than one element. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + The message of an exception which is thrown when the source collection is has no element matching the criteria. + The message of an exception which is thrown when the source collection has more than one element matching the criteria. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + A that can halt enumeration of . + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + A that can halt enumeration of + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + An optional custom exception message for the case when the is empty + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + An optional custom exception message for the case when the is empty + A that can halt enumeration of + + + + Returns the first element in the , or a default value if no element is found. + + The type of the elements of + An to return an element from. + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition, or a default value if no element is found. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + A that can halt enumeration of + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element. + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the value in the IAsyncEnumerable returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the intermediate elements collected by . + The type of the elements of the resulting sequence by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element of the input sequence. + A transform function to apply to each element of the intermediate sequence. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the value in the IAsyncEnumerable returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the intermediate elements collected by . + The type of the elements of the resulting sequence by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element of the input sequence. + A transform function to apply to each element of the intermediate sequence. + + + + Returns a specified number of contiguous elements from the start of a sequence. + + The type of the elements of + A sequence to return elements from. + The number of elements to return. + + + + Returns elements from a sequence as long as a specified condition is true. + + The type of the elements of + A sequence to return elements from. + A function to test each element for a condition. + + + + Creates a list of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + A cancellation token to cancel the async operation + + + + Creates an array of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + A cancellation token to cancel the async operation + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + An to create a from. + A function to extract a key from each element. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + An to create a from. + A function to extract a key from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + An to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + An to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function. + + The type of the elements of . + The type of the key returned by . + The to create a from. + A function to extract a key from each element. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function and key comparer. + + The type of the elements of . + The type of the key returned by . + The to create a from. + A function to extract a key from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + The to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function, a comparer and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + The to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + An to return elements from. + + The type of the elements of + An to return elements from. + The number of elements to skip before returning the remaining elements. + + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements of + An to return elements from. + A function to test each element for a condition. + + + + Filters a sequence of values based on a predicate. + + The type of the elements of + An to filter. + A function to test each element for a condition. + + + + Projects each element of a sequence into a new form. + + The type of the elements of + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + + + + Casts the elements of an to the specified type. + + The type to cast the elements of to. + An that contains the elements to be cast to type . + + + + Filters the elements of an based on a specified type. + + The type to filter the elements of the sequence on. + The whose elements to filter. + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + The type of a batch of elements. + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + A function that creates a new batch with optional suggested capacity. + An action that adds an element to a batch. + + + + Produces the set union of two sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + An whose elements form the first set for the union. + An whose elements form the second set for the union. + + + + Produces the set union of multiple sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + A set of whose elements form the union. + + + + Creates a new sequence based on input one plus an extra element at the end. + + The type of the elements of . + An to return the single element of. + An extra element to be returned on enumeration. + + + + Creates a new sequence based on input one plus an extra element in the beginning. + + The type of the elements of . + An to return the single element of. + An extra element to be returned on enumeration. + + + + Concatenates two sequences. + + The type of the elements of the input sequences. + The first sequence to concatenate. + The sequence to concatenate to the first sequence. + + + + Returns distinct elements from a sequence by using the default equality comparer to compare values. + + The type of the elements of . + The sequence to remove duplicate elements from. + + + + Returns distinct elements from a sequence by using a specified to compare values. + + The type of the elements of . + The sequence to remove duplicate elements from. + An to compare values. + + + + Applies an accumulator function over a sequence. + + The type of the elements of . + An to aggregate over. + An accumulator function to be invoked on each element. + A cancellation token to cancel the async operation. + + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value. + + The type of the elements of . + The type of the accumulator value. + An to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A cancellation token to cancel the async operation. + + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value. + + The type of the elements of . + The type of the accumulator value. + The type of the resulting value. + An to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + A cancellation token to cancel the async operation. + + + + Determines whether all elements of a sequence satisfy a condition. + + An that contains the elements to apply the predicate to. + A function to test each element for a condition. + A cancellation token to cancel the async operation. + The type of the elements of . + true if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, false. + or is null. + + + + Determines whether any element of a sequence exists or satisfies a condition. + + An that contains the elements to apply the predicate to. + A function to test each element for a condition. + A cancellation token to cancel the async operation. + The type of the elements of . + true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. + or is null. + + + + Extension methods for interface + + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + The message of an exception which is thrown when the source collection is empty. + The message of an exception which is thrown when the source collection has more than one element. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + The message of an exception which is thrown when the source collection is has no element matching the criteria. + The message of an exception which is thrown when the source collection has more than one element matching the criteria. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + Flag to call the on input when this operation is complete + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + Flag to call the on input when this operation is complete + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + An optional custom exception message for the case when the is empty + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + An optional custom exception message for the case when the is empty + Flag to call the on input when this operation is complete + + + + Returns the first element in the , or a default value if no element is found. + + The type of the elements of + An to return an element from. + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition, or a default value if no element is found. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + Flag to call the on input when this operation is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element. + Flag to call the on input when enumeration is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + Flag to call the on input when enumeration is complete + + + + Returns a specified number of contiguous elements from the start of a sequence. + + The type of the elements of + A sequence to return elements from. + The number of elements to return. + Flag to call the on input when enumeration is complete + + + + Returns elements from a sequence as long as a specified condition is true. + + The type of the elements of + A sequence to return elements from. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Creates a list of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + Flag to call the on input when this operation is complete + + + + Creates an array of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + Flag to call the on input when this operation is complete + + + + An to return elements from. + + The type of the elements of + An to return elements from. + The number of elements to skip before returning the remaining elements. + Flag to call the on input when enumeration is complete + + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements of + An to return elements from. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Filters a sequence of values based on a predicate. + + The type of the elements of + An to filter. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + Flag to call the on input when enumeration is complete + + + + Casts the elements of an to the specified type. + + The type to cast the elements of to. + An that contains the elements to be cast to type . + Flag to call the on input when enumeration is complete + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + Flag to call the on input when enumeration is complete + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + The type of a batch of elements. + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + A function that creates a new batch with optional suggested capacity. + An action that adds an element to a batch. + Flag to call the on input when enumeration is complete + + + + Produces the set union of two sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + An whose elements form the first set for the union. + An whose elements form the second set for the union. + Flag to call the on input and when enumeration is complete. + + + + Produces the set union of multiple sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + A set of whose elements form the union. + Flag to call the on all input when enumeration is complete. + + + + Used in ParallelForEachAsync<T> extension method + + + + + Constructor + + + + + Extensions methods for IEnumerable and IAsyncEnumerable to do parallel for-each loop in async-await manner + + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Exposes an asynchronous enumerator, which supports a simple iteration over a non-generic collection + + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Exposes the asynchronous enumerator, which supports a simple iteration over a collection of typed items + + The type of items in the collection + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Supports a simple asynchronous iteration over a non-generic collection + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element of the collection asynchronously + + Returns a Task that does transition to the next element. The result of the task is True if the enumerator was successfully advanced to the next element, or False if the enumerator has passed the end of the collection. + + + + Supports a simple asynchronous iteration over a collection of typed items + + The type of items in the collection + + + + Gets the element in the collection at the current position of the enumerator. + + + + + Internal base type for and + + + + + Utility methods for + + + + + Forcibly disables re-use of instances in the method. + This is just a safety switch in case when something goes wrong with re-using instances of . + + + + + Resets a to initial incomplete state. + This method by default re-uses the same instance of the by re-setting internal state of its using reflection. + If such feature is not available or explicitly disable with the method, it just returns a new instance of a . + + Type of the result value + Target to be reset or recreated. It's safe to pass null. + Optional state object that you pass into constructor. + + + diff --git a/packages/AsyncEnumerator.4.0.2/lib/net461/AsyncEnumerable.dll b/packages/AsyncEnumerator.4.0.2/lib/net461/AsyncEnumerable.dll new file mode 100755 index 0000000000000000000000000000000000000000..8902bed9dabe590e1b09377dce2c2c7d29c462f6 GIT binary patch literal 139776 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 WSYS?y?;{v<6COPO^ymMd1^x%N$59dh literal 0 HcmV?d00001 diff --git a/packages/AsyncEnumerator.4.0.2/lib/net461/AsyncEnumerable.xml b/packages/AsyncEnumerator.4.0.2/lib/net461/AsyncEnumerable.xml new file mode 100755 index 0000000..d6838e4 --- /dev/null +++ b/packages/AsyncEnumerator.4.0.2/lib/net461/AsyncEnumerable.xml @@ -0,0 +1,1675 @@ + + + + AsyncEnumerable + + + + + Base abstract class that implements . + Use concrete implementation or . + + + + + Returns pre-cached empty collection + + + + + Helps to enumerate items in a collection asynchronously + + + + IAsyncEnumerable<int> ProduceNumbers(int start, int end) + { + return new AsyncEnumerable<int>(async yield => { + for (int number = start; number <= end; number++) + await yield.ReturnAsync(number); + }); + } + + async Task ConsumeAsync() + { + var asyncEnumerableCollection = ProduceNumbers(start: 1, end: 10); + await asyncEnumerableCollection.ForEachAsync(async number => { + await Console.Out.WriteLineAsync(number); + }); + } + + + + + + A pre-cached empty collection + + + + + Constructor + + A function that enumerates items in a collection asynchronously + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Similar to , but allows you to pass a state object into the enumeration function, what can be + used for performance optimization, so don't have to create a delegate on the fly every single time you create the enumerator. + + Type of items returned by + Type of the state object + + + + Constructor + + A function that enumerates items in a collection asynchronously + A state object that is passed to the + + + + A user state that gets passed into the enumeration function. + + + + + Creates an enumerator that iterates through a collection asynchronously + + Returns a task with the created enumerator as result on completion + + + + Creates an enumerator that iterates through a collection asynchronously + + Returns a task with the created enumerator as result on completion + + + + This exception is thrown when you call + or when the enumerator is disposed before reaching the end of enumeration. + + + + + Base type for and + + + + + Returns an empty . Safe to use by multiple threads. + + + + + Helps to enumerate items in a collection asynchronously. + Provides exactly the same functionality as , + but allows to pass a user state object in the enumeration function, + what can be used for performance optimization. + + + + + Constructor + + A function that enumerates items in a collection asynchronously + Any state object that is passed to the + Optional action that gets invoked on Dispose() + + + + Finalizer + + + + + A user state that gets passed into the enumeration function. + + + + + Gets the element in the collection at the current position of the enumerator + + + + + Tells if enumeration is complete. Returns True only after MoveNextAsync returns False. + + + + + Advances the enumerator to the next element of the collection asynchronously + + Returns a Task that does transition to the next element. The result of the task is True if the enumerator was successfully advanced to the next element, or False if the enumerator has passed the end of the collection. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + True if called from Dispose() method, otherwise False - called by GC + + + + Helps to enumerate items in a collection asynchronously + + + + + An empty . Safe to use by multiple threads. + + + + + The asynchronous version of the 'yield' construction + + + + + Gets the cancellation token that was passed to the method + + + + + Yields an item asynchronously (similar to 'yield return' statement) + + The item of the collection to yield + Returns a Task which tells if when you can continue to yield the next item + + + + Stops iterating items in the collection (similar to 'yield break' statement) + + Always throws this exception to stop the enumeration task + + + + Constructor + + A function that enumerates items in a collection asynchronously + Optional action that gets invoked on Dispose() + + + + Internal implementation details + + + + + Converts generic IEnumerable to IAsyncEnumerable + + + + + Creates adapter for + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Creates adapter for the enumerator of + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Creates adapter for + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Extension methods for for backward compatibility with version 1 of this libraray. + Not recommended to use. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Creates an enumerator that iterates through a collection synchronously. + This method is marked as [Obsolete] to discourage you from using this synchronous version of + the method instead of , + what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Class to provide access to static method. + + + + + Stops ForEachAsync iteration (similar to 'break' statement) + + Always throws this exception to stop the ForEachAsync iteration + + + + This exception is thrown when you call . + + + + + Enables asynchronous 'foreach' enumeration over an IAsyncEnumerable + + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Extension methods for interface + + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + The message of an exception which is thrown when the source collection is empty. + The message of an exception which is thrown when the source collection has more than one element. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + The message of an exception which is thrown when the source collection is has no element matching the criteria. + The message of an exception which is thrown when the source collection has more than one element matching the criteria. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + A that can halt enumeration of . + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + A that can halt enumeration of + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + An optional custom exception message for the case when the is empty + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + An optional custom exception message for the case when the is empty + A that can halt enumeration of + + + + Returns the first element in the , or a default value if no element is found. + + The type of the elements of + An to return an element from. + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition, or a default value if no element is found. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + A that can halt enumeration of + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element. + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the value in the IAsyncEnumerable returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the intermediate elements collected by . + The type of the elements of the resulting sequence by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element of the input sequence. + A transform function to apply to each element of the intermediate sequence. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the value in the IAsyncEnumerable returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the intermediate elements collected by . + The type of the elements of the resulting sequence by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element of the input sequence. + A transform function to apply to each element of the intermediate sequence. + + + + Returns a specified number of contiguous elements from the start of a sequence. + + The type of the elements of + A sequence to return elements from. + The number of elements to return. + + + + Returns elements from a sequence as long as a specified condition is true. + + The type of the elements of + A sequence to return elements from. + A function to test each element for a condition. + + + + Creates a list of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + A cancellation token to cancel the async operation + + + + Creates an array of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + A cancellation token to cancel the async operation + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + An to create a from. + A function to extract a key from each element. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + An to create a from. + A function to extract a key from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + An to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + An to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function. + + The type of the elements of . + The type of the key returned by . + The to create a from. + A function to extract a key from each element. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function and key comparer. + + The type of the elements of . + The type of the key returned by . + The to create a from. + A function to extract a key from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + The to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function, a comparer and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + The to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + An to return elements from. + + The type of the elements of + An to return elements from. + The number of elements to skip before returning the remaining elements. + + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements of + An to return elements from. + A function to test each element for a condition. + + + + Filters a sequence of values based on a predicate. + + The type of the elements of + An to filter. + A function to test each element for a condition. + + + + Projects each element of a sequence into a new form. + + The type of the elements of + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + + + + Casts the elements of an to the specified type. + + The type to cast the elements of to. + An that contains the elements to be cast to type . + + + + Filters the elements of an based on a specified type. + + The type to filter the elements of the sequence on. + The whose elements to filter. + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + The type of a batch of elements. + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + A function that creates a new batch with optional suggested capacity. + An action that adds an element to a batch. + + + + Produces the set union of two sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + An whose elements form the first set for the union. + An whose elements form the second set for the union. + + + + Produces the set union of multiple sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + A set of whose elements form the union. + + + + Creates a new sequence based on input one plus an extra element at the end. + + The type of the elements of . + An to return the single element of. + An extra element to be returned on enumeration. + + + + Creates a new sequence based on input one plus an extra element in the beginning. + + The type of the elements of . + An to return the single element of. + An extra element to be returned on enumeration. + + + + Concatenates two sequences. + + The type of the elements of the input sequences. + The first sequence to concatenate. + The sequence to concatenate to the first sequence. + + + + Returns distinct elements from a sequence by using the default equality comparer to compare values. + + The type of the elements of . + The sequence to remove duplicate elements from. + + + + Returns distinct elements from a sequence by using a specified to compare values. + + The type of the elements of . + The sequence to remove duplicate elements from. + An to compare values. + + + + Applies an accumulator function over a sequence. + + The type of the elements of . + An to aggregate over. + An accumulator function to be invoked on each element. + A cancellation token to cancel the async operation. + + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value. + + The type of the elements of . + The type of the accumulator value. + An to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A cancellation token to cancel the async operation. + + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value. + + The type of the elements of . + The type of the accumulator value. + The type of the resulting value. + An to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + A cancellation token to cancel the async operation. + + + + Determines whether all elements of a sequence satisfy a condition. + + An that contains the elements to apply the predicate to. + A function to test each element for a condition. + A cancellation token to cancel the async operation. + The type of the elements of . + true if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, false. + or is null. + + + + Determines whether any element of a sequence exists or satisfies a condition. + + An that contains the elements to apply the predicate to. + A function to test each element for a condition. + A cancellation token to cancel the async operation. + The type of the elements of . + true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. + or is null. + + + + Extension methods for interface + + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + The message of an exception which is thrown when the source collection is empty. + The message of an exception which is thrown when the source collection has more than one element. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + The message of an exception which is thrown when the source collection is has no element matching the criteria. + The message of an exception which is thrown when the source collection has more than one element matching the criteria. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + Flag to call the on input when this operation is complete + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + Flag to call the on input when this operation is complete + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + An optional custom exception message for the case when the is empty + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + An optional custom exception message for the case when the is empty + Flag to call the on input when this operation is complete + + + + Returns the first element in the , or a default value if no element is found. + + The type of the elements of + An to return an element from. + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition, or a default value if no element is found. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + Flag to call the on input when this operation is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element. + Flag to call the on input when enumeration is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + Flag to call the on input when enumeration is complete + + + + Returns a specified number of contiguous elements from the start of a sequence. + + The type of the elements of + A sequence to return elements from. + The number of elements to return. + Flag to call the on input when enumeration is complete + + + + Returns elements from a sequence as long as a specified condition is true. + + The type of the elements of + A sequence to return elements from. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Creates a list of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + Flag to call the on input when this operation is complete + + + + Creates an array of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + Flag to call the on input when this operation is complete + + + + An to return elements from. + + The type of the elements of + An to return elements from. + The number of elements to skip before returning the remaining elements. + Flag to call the on input when enumeration is complete + + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements of + An to return elements from. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Filters a sequence of values based on a predicate. + + The type of the elements of + An to filter. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + Flag to call the on input when enumeration is complete + + + + Casts the elements of an to the specified type. + + The type to cast the elements of to. + An that contains the elements to be cast to type . + Flag to call the on input when enumeration is complete + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + Flag to call the on input when enumeration is complete + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + The type of a batch of elements. + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + A function that creates a new batch with optional suggested capacity. + An action that adds an element to a batch. + Flag to call the on input when enumeration is complete + + + + Produces the set union of two sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + An whose elements form the first set for the union. + An whose elements form the second set for the union. + Flag to call the on input and when enumeration is complete. + + + + Produces the set union of multiple sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + A set of whose elements form the union. + Flag to call the on all input when enumeration is complete. + + + + Used in ParallelForEachAsync<T> extension method + + + + + Constructor + + + + + Extensions methods for IEnumerable and IAsyncEnumerable to do parallel for-each loop in async-await manner + + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Exposes an asynchronous enumerator, which supports a simple iteration over a non-generic collection + + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Supports a simple asynchronous iteration over a non-generic collection + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element of the collection asynchronously + + Returns a Task that does transition to the next element. The result of the task is True if the enumerator was successfully advanced to the next element, or False if the enumerator has passed the end of the collection. + + + + Internal base type for and + + + + + Utility methods for + + + + + Forcibly disables re-use of instances in the method. + This is just a safety switch in case when something goes wrong with re-using instances of . + + + + + Resets a to initial incomplete state. + This method by default re-uses the same instance of the by re-setting internal state of its using reflection. + If such feature is not available or explicitly disable with the method, it just returns a new instance of a . + + Type of the result value + Target to be reset or recreated. It's safe to pass null. + Optional state object that you pass into constructor. + + + diff --git a/packages/AsyncEnumerator.4.0.2/lib/netstandard1.4/AsyncEnumerable.dll b/packages/AsyncEnumerator.4.0.2/lib/netstandard1.4/AsyncEnumerable.dll new file mode 100755 index 0000000000000000000000000000000000000000..67a49fa984bc870c7844fb2c79541f194b61a3e5 GIT binary patch literal 148992 zcmc${2fSQG`Tu`%cJJPn1a8?)qa=aE<=&f6g@j%$fCvauM3Ab~g)AWE+zA&&Y>0@8 zT>(Yxy`W<6y<@>d#on>^@OyurnX_khbCccg_v`=lzps1dnR#aBnP+A`^URz%bIv~M z^qZ4Xk|brW2Omt5yP^6!)ZA@5Gepnd`2+KlcMpDP+1+!F{nE0No^)Yz>E-JhPh5BQ zrAyB}`?AX#S1vv0{H5!zx@_r%mn}W=(T`brY2&=}SI?U_v}+K3{834A?3_}v_pdg8 zJumHt$?~PcbM{D*1JfiK@Z85f4*yd8Pk<)L_U6Ycz4e#VJji`QONbcZZzfIV;$3=rnw*sLdZ9~Os$1#-!jFjZt-kX7Ypx`G#sMfx zoYfU?{I?XXR87iR?S_xZcdV1-kc)5-mMb1&#e|IyWJsut14+7 ztPV{iOZG^Uk>mOWFi^cqmo=Mf&8VJR9w|xYpzjJpKaA> znx>iBqPZ5wNn{YXzj+V9UA1>wKTshr!pEoegJ3ld#@TR)B9{u*jYIJ|Wtte_y~;Wm%MsWbM6R;J@t8HjHgb+5@C4)s4C2C>%d;|2n+PntYMx=^pum2~rxp^8Bv zZJa=csr}Q&iO|MlaIWg3{!=3r>&_Lc(v=gY@@Uz=#z2+pkxzA(haA`Mjb@NQf%vti^ngYsqx8R>%HBK#7teUqnt<#y4rRLd6^?{C58tapLSG*-iuVSb# zS+QzhWm;;UtK^0U8X9YZejNoU@la)I`-;>Y16Tcx^OPxVoDV5AFHqpA%Jun3tzC*D zEP=2xCs{@rl~BeHqtp!TIh2uBCer5DNaFj_r)OZAP5?TL`SdCVX)FD`t@LR^shXZF zeI$Q0@tRi}?;>%1x#f^PD@c!B?UdhmFDW!2o=Dv^YM!Jzk~Xiy(3WLfMcvd+R)-5a z(hqN0##Jk$^cS_#_fQA5ejOxDV$(5C71?yC6x6tWBziLE*to{>lt+`2%p$a`;R3B+ zOlpVu#9wu^eYuh;g7?c$$JE} zk}2fnfg8yaqfMUlWSX${#BP|Lm;%!i%K-IqF)St*LxWs}yxc)ASBy5f(sLxpJ8!dD3$<$OE_JEx8MgmL2$Q$z?d2Tt+W)74mYysN{;# zCRchg?5+M+THcat8uj&FXa1_Y0$Rxw^76o-ZzqD?O`0F8Y~V^lizz%KTM#HMEi`y zC3lU{vSW^E$z5;$s>`62Od&593`(vTZE~e2^Rv}|+VYm1GwSQT!TeQsEwqv;$m-{sHSKal{N~VyPJL2Vv(I!`VE(&s=Zh1@Y2BTiy zGt6Ig&xBSog}l5`FHej%dD3%nkoPRhTXN4fT6WJd>gC>O{;GQ}w2~?0<$^)gUyL@n z(sN0Wdz0lYx#t=6@@_VN)jc0t$rSSPz@X%b;pH8iZn%ZO_;{%fjwUBUxK!@*;nitr ze7x-alqp+#I+U5)`tk+j6_#IUwCrAFw9nmYbbi^r*gW-@K-^2sUv)2oRx*XWQUFd$ ziBW$A&cwc6sZt%tOtOyf_I<}t<||2}GGAr1>|Slu7jc{UtL}DaB~!>30ajFm7`}-8 zL%mD&MJgi%OJyINpw_|b>wE%r-YJxShm}!suQ6J7uQl4|?lkK4c%AvH?k;F0Q^@N9 z7Nmz59aW__C;gg4nAtg$^?H+2a&ItNc5gK5%XpLdtM1LvN~Vx6gT7H2V)!zUr#0)L z(51-Ls%2?wT~Q*mx)s{+78AO;x-aLEeu$1GfOA2;fC z{{;R@^OLwO-B-*icdNR8%A{?s9u`XZw1rFVGe*nqv(QTObGSkG1JQlumSxoT2utP- zpSPTwt49QhU$Ah=ebFR+Ns@9bJY-8bwCwdo%YHe?Ix5KeN|5zcll3((D@{;7sUu6! z`+7+74WspMLfp5^Uv>9FE15zb^VkMqUX1#8aHyi$D#_a|$onpQ*^TcRt=|W6-#35N zZG=`bg}gk*y5xyb{{c=ePh%6m>GwnUlJ_H{Wp}^P`i~**C+4rZpF%5{LS8Q8T5`px z{~RZmEBi7T|xFBmqkhRie zJtUU(&~CEW4KlqRA7t$oWKEc?$y}EDWZx}hZI}wV&kDI$SuUoDyls?kzb*6a9`czCOKn@3DRv}Po1IIlN*!~ob(8O}wOh*EE66-A$lTk)CAW{sX5V#aVtHDs zV~HmxZeYV?UpUJi^ncfm>&APsj=GcDo}8RuOQl@Ly4d=qqP1bNf3D93(ue4dEG)2C zVPY{RCoTx`33ntyj_QCxO%AX+Y;Wt9buZDhvKE!rmxgM?4Eg=>_is*Xo3&+k0D-fn zwqJKYsn)GdNqV4?&M&Xpe%)~d*Igity9BY}l6h z)Ia|$T6Q)mGRluFq~-G&b+YxuDOPaFoock~PBZG)`lp+}>K+HJWD0pR&0HumEk?A~ zPZP~&tbI)G8J4%?9&fbl&NSNR&N5nm0>qtd{;E3%TFDgh@|hDQUyS;BIBK)}9`NuW z|9tqW8tZ6i**(!{pL>!~M#_cesb2(f7n{H8E`e4ug?vFwjw(ou`eiuQ*8aZlh)_-g zw#vEOXxUw1w9a#pA=fm2)m;g#WD0q)%!v{!M*V7>T>nQ>k0XQJC&QQAYmBnbVbsfA zZ+`YUpzL$tdb!Mjk}HOn8{J1^FWT;-EgbHn%^$TPW8L~_+R9;1#Aw-VFxuy?HA)-K zn8$|izx1+nY!ZpXbbxLX!Cm92$v5Jh-wM{OpTB z*%!g}dNAKf4>3Bb%4`?iM?WHzb(6_qkHl!%-E7pC@qF`F-7U~crjRcK+ov+bh{jgQ z_L{*@#~P^PKKcbFbaQn>up%$CaLK*MXxZHgt&BHc4Dp!sa*ysNm${G5+FYFpa$joU zl6#ravU@ocxvzlaay6eEv!z_!=aFP+V#6yf@8;@LgUnZ1xa3}KwCrw!BJ*}gE>q*@ z*ezwYujB5p{F|%S2f44YaLK*aXxZHfMege$Uar6YdlYhY|94kN{(7VS{_hRuuevuv zE15#RuUH?buf*8m{_nUT?@gAsXeCp~%VVyTJTapCzmnD=dQRWb z_Z!}3Vm4Qw8EX1=3zytGjF#Oyq15zU5Y6$vuaDnCPRBa<-IjZE_1Qt{dn{aX?=@O> z?}H-sZb;lOjIj>=I^@3J@^7x*803Dy!X@`Xqh)sw6uBRQ#BxvUCilaZe{=PwAon8{ zF1e2yExV6Fk^6B-E*E>4JZ1~I8$Mwf$`?IAih5<31c~VZ0OIe zu8r@N0Bq!~*1HRz%T0f=HvYCnmfd%tbn$n+aA8SU%w|TeTE9>UUFT{v-5Z~*tukgG8(6U0DWHUd6SjSCrWTaHCE$H)6c_5Fe)fR+I#8|*$ zXiwc2vG( zdHxXc{ISS0zdS$G!Rw|xXDH8~LY_Z|Jb&rP6ADs&*egodN*HPWHRSnQ$n*DBo>oic z>CaU9e}we^4C(*XmflLp)1RgE{|@Q@6Vh+a(--ZXr+C(zU80mQN;Dd#XaAR;r>*>BxRV!bZqQGesw1pd=l=E+CJC~vGSpOwckww+l0 zaTab|Nz1MZnOL7@3N~uuWnwiK;BbU(A*5S$A#;)Pm)&Az+AGZzY%KAC`VP==WQ?PbaQ37g1g|PnUt(^ ze=}*(6O{>_b<^pXu_ejk6`Y^Rby-0|wYAQ+C<(hdoEuvSR}%-b_MA#fZz(cydh;QW z6%7s?4K;SdnHl97zmEM)DEeU9Q68W;sWAL0Q6>gw9*(Qb*9n}(8yJ#0=w~E9=(l>^ z;WGNnKtt>IO6#l0>RV{1aDYyF4h2064J)maf}Cs&y;+r7)GO696uHAp%+&Z+N9$@Tqk);+v0xxBFk-%w}F*?G)xXUuc*n7N%X zugqiSRo0GEV*lFtxC3hka0l0>xRvHwmAyYsgCn~`cLJk1W9357y7wca&WYurvA(YY zQLpT}Pqes|k-kd(AmT^LH!Aa2<@g$Lo_DBzh@$%XEy;Kxp&msJSY&M**#~_I6_Yl5 z!b2%%;d8lHnX{rc(#O8#Nac?DVK5tq<6QX;)@(D2KvVsGYQ1T2<+z15VUhiqo=N`k zlsSW{q1JBP8YLIeKTVB-A#;bVspf8wkb#C;tkO6Fccl;5$;MUn5a5XN(5fXNfKo%N z=7+#h%DB4U7e6tubJlnmoLI)NXAs2E7GC=f2%`(p+n>0?HWw|k2Lr%v_kU{ zC@^neu<^)tMOLkfn__9)6k{Q9B5m6^nrwru`b_K;8uwM!PE!lhYk(cp{PHer(8V^!$u-0*!DKo# zT$vi_&$vAtn%lp?&PWeTosm?g_84d!Pxg7ErTPibRR^ZE6+?C`I308+!b$Bg@MtO3 zdEm)SXQY|9^U`UN&DC82WLgbb5ONaSO{JBal72gqyJ^u_Io)})7if}3%Jq|#W~`lE ze=JO}E~CaNhEuboB&_T7;59cSi!_(*>s2Y$Pf^l*D#1#!F+&^U=&X8}7EUEiTCShw zlV+!jYH~6UvlZv>J;OYoPN&a+FV_LE|jkm1(9#HXUP}?Hq7( zE~9n*W0?k@&`MqNskt{wwGZXzq>!L~Hpw(2oC94ooNl0!UP~|BAAdHf^>ax=nNq-? zTs}{Xi4ARqSxm{!I{OS0_owxJX^T}mr_;)s*Ga0I^!^3)P#Z-Ti;IbUOBuHTLmc^q zKk+aWB4qL#JVF|pxQQdrPsG!F63z^FCPOeT6yqW>xb4u~QA*f8OD-||v3f0YT6U_k z;DAw>{)l@y%~r#=Y1!?8j}zW|iqza*kfgE_Se`vuvs3ycRuY?H8y8bd2y3#NJDS$& zm%tNvFNJD`y$rhQ5CgGFPx~E^QO7Lc%*E4ZX&Dc^iFgbtBh7^^(#m`)<4=`UnfuBXkWc4H4aV}FfdGw zkv_+6b*@KWS_iX}o2JuD+_AoNT6A;uq4{VsE&A$LA|}n$I%DOL^3;Nn@>LoM^y5f* zef=t88&@ldZ$SpzfJT*-Xf+-gs6Ux_KiCR({Ti4PhoOW1_UB>?EBP!}iEAE>1JSeD zQ9km+7cW*i}*_n2UJTqsDgukkpXqr z!lA<{I__{vq{G?YYU^+d_tN1ih7QNb(a?+m`Z2AuyP9{nBIt0DsKb?Os~s*q)#0W? zj~#Am(BTJ?H|Rl!vy)>TF0MLUH0p5EBJXgO+O5M)v(VvIqSd&q!wa_WaGE~v^Ih<( z&slb~_4!i5>T{ZVi#|V@{yd|-&(+9nea=Q^a;fz>yOR0Xe<)1G{vmME>`+`k_E~gl z?6c++6quwu6xLox*=g+}cNCmS?v4&qf=sE+45XPN8ta97^A4x|3obgo8Ux!e-h`o-4#wqe9le*5qeT&OZOVz!qFl%^^Kf=#9{N&xTvZWT zOjkn-Mj@DofzbhP9BBtq zwai0byLm9p7L5(cJXncVxk_BIeRx0N2e>-z1J9k3Te%hy z7wm(YxD6{jmk3y4Rg>F?onQirW8nY_25$!_7)AyPCTc)&3~m60A_6Gn4WN)WB6e5ucQLe3mLRAqcOxGSkVQK&hV36wpC{7HZ5LciOjX+^q zJ&N12Tak%^m|Q%}&Dg2IR2{kGoSuYVK4>QdzK4%ZJmMX+B2r zlUJtM$%@XD)~_NmOhK(N9SnklYTd8_8rBUenQ7!Sk!jl8rV+}X+}MyFnIf1*L^fBM zvi$m2xsY=$azbeWoQzK}Ls}Nd3~99zRw-H@SZRZf)l*&?OKs|yn;}K8+7^irXQh?A z8Cn#Xp-KvB)F48f)!7h-@d;*VaCFd{AuU(JDrI4=#z?`DzzK9OtSzkE797w4O|7gV~$&y zcx)}9*JErggD-3?h2M#-kHF)}Y>chPqh=en*k4QH(b-A5iU)GvNw7UZZ2-k`ctr_Rue9*H4K-Sx?uE%Mu)u7 z(;_S~dR~zMy^)qHGLY6Wa)wKBxuKdCjc{pN3-D*yl)yg2|BApnX-05lD@20*o%0BEhzBLKZ318#kx2moYK zF#w7y0E$KcG%a!fs?=@(G|d74twgJG8vqM-`#Mi{QTRKQE5_flfWM>QcjAvn=LwIf zW4pKxE!*%X3y6W^8Q66gi1t0Ar@~3Ir{Ol(K^t<{D?IL=E>d$hK%zaOXNa3Ai9IK2 zJhKQ34BhsKR60m}mdNz8afL*twtRwA1V|K#aG+cuarQkT=_wqTPKJZ-dqk!NH;~UE zZ_tA+gC_(Wh^s9F(Fg~oMZRUAQoC&#m}X(iz)G|lw`~~|>~z&Wp~IgqGJOlK zI{fUS!xce?i$oo+TwCpM>8TDk9eV6=Q-cnF0eOQSbU3R%8~Ea?!$qSGH!boGSE=1P z+%yXvZY5fc+d8~phneTUzDJ}+ZtL@6kLZO&g|Q#@h+YII&2Gi@WB_rrUDtJ6NrvPYyQZo^8kM|2xe!9IjNqTAsB ziaQ|fpm+@&f#S7Fkll$JK%s~L3V8!4L zGj^fRg^6!+#h6%1SeW=OS0^TB*&|X5w_&2#BYFc-`8`$GBYGpOGAFv)NZ%&rdha+w-T*=+iv3vc0OtSm-mR&qivWg_K4m?RDQn{ z_K4mK3vj&;G8?$=R&@4$+#bQDA^_J1M5aH8D{ygNn}bUcfJ-C-mvXhhWu^57E-P)& z-9z?J8sOrdH3yd>0GCJvE-P(o;8KGKT&6{j;4(D;*M|x{02lWN1}l$l0z=uBl;x#aEtyarOcEqOoEDQd>Ut)22QGg!Ow_He->95WUD8?MOOqE z6p1jXTrCW$pm2*WZ&1QO*?o`5%I6mSbIR!z;1-=Nsr(jQ5xPYejc{oiZ0#0ZttMPr zYZxxO?-6-L2HfWhMYu(0XUcFXu5QsqBV3vm`7OFi?RJZ9nuS|*E77Xlc8gxHJ8=15 z+9OgYx8ZVOYmev)MCCRw>=Att76AMbWHtbP8GZoZSClgQDsBLv;<^J+WdgvjiA;YT zR{&%yE(f3@0H8<&K;>!yPz415${UpE5r9@c0Q`n>dIbO=`y@F46(InMMgTMowgy18 zngD36(IWu8A_MN5g(3iOT>zlC0-$IFK+_@zpi1oqK+`M$&`Pu_w*jzVx3Ba5OM67> z}%=`wYC7-&Q z{NKWq{NEY%@_%pss(S!h$rSSPulDlADCGZvQ1g#CGk?Nq$)~O+|IaWb|1Ui!0;WD0rt?9obpF$(#AC)E50&dfh?TJou@$^REj$^W-eFaJO0ue#09N~VyP&sMSI zi&4mbkWiCbkD-}4IDB}anL=F&r*%%SteAb%Ow3ZFPa#eeD%7Ybz)?X;HKpaqtql2vGAR#v-)^WM`=5ULr^WmjL_@%Ac_f$fTI5y@&S1l?v=Rq-1VpkgT z&D~CJxv@PYt&ia9hV|6?D832gNZvvyZQCJF->0mzcReZf$CO-0AI(Emt>nhI*nH6suj+P#Rx*XW{An*=j6(hdq2?sc%oI*bKDwCvRWK!gwNWpBck@>r-GzLG zynN^7i&4nmlTdRnoSD6GTJq7w2sPK@ z%{~+^M-NDdGrjVC^t(PxGA^#9U%|mf!4#R25M;DWSI84bu z!l;*jr1`7vC}<^9$jhJc^2I3RKa5cG;W#soz?oRLU3l5D(tM=C1dmpVV-x`N4Zdj7 zmg-S)s^juhkM2lye4OfpJk^QvEN(tVgm1t!PQtSi#>qM3v4L?)&N$T=k&>q=CRg%w z1*GKT&YWc)1wr3K*{t z|?~)$YM=AXD>`ivN`2 zb*}$t_65+DHRq>c@l57?PAA>SfK0Q`z~F8ArLFH^rrBpb>-vIKbDx99o(b;eYL${W z3#FWC_61zO&-F!x$K97iYVOOBq_Xz4^xWjBUS^spiQiHE3cjgB(@b)wmU4Ryt$z(? z)qoF7_N{v;COrJc!ve2BB*96S5Z3-c*9U{DInRK;E;9WMTs;GN2HI`h-5Np>JOdJm z_6C$Ie+IO#PHoQRDKAffRZDFPSdDC3U|Y`w{UIvTfX6@IB5zQE$3M@M3U8*F(o7M0 z0wfyk444l26Cf4b?Fo=|fi>+an)Y6Dw3=1{n)dlc(`IVOVO~VBljf$QH4hJrzD>-g zaUFsx*!}hIz{TJkwhub<$GyEhFFKM|?0hy<1$R4eEh5bd|IUe8zEuCNmmzE}ZDI3! zFatLAP$|vsgVBM_?|W7oHaEgcr#IoYu&JDB_5)mx%^xZ}?tUavbN55Q=FMm|d1RVN zW|}EUgw3fmlU#mJq~_#V^K4S53(ODrTdAGO4dI?}s9J)dy(so&(rTUE(S5yGKpghSII$Ds=DhC^#^ zYsOV<@%hf#v^>q!WG%#*Hr5brh%49uaWURLikiGmy#?NMhKWyL#CTH+x8ZFWc*Cw@ z3x7rwcsmhWc%n7^&tY`n?H8UE;VsRSEX{t2>%sLag~#2mMQZLh5YDqdd6Kshl{?K8 zA0cZD__SE=w?yj9yK#B~kkkf1zZ04MJ+1)s9QEEKtrm&^Kq3)?(*THkkXT$n?K(g}LXdpZ7M*DFV!iM3_^qEifltbIeJ7Va^ok z5p$*rnEN+*gDzl>lWvn6?=s9OLYNbcFlWl-m{Y-BFeg1*m{W@lZ`wC+@o9xU=2~_w zJfbx9tclvtRj_k(<@Rh_*qY^C2sM5iw%$euu;jy@{f8*9wIBA(rV`s@rFv1ieh=@iIF&%Pe2uHqwydYYuH%YqiyE|4A2Jd4&Mx27 zN?69y|HCl1?0-JrrT(8MlFi5U24p*h$KCcKH8%pu``!aeoB)S&-IMW)Aa z)&I{|MU|C&Gv`Ufu{pJE5_4-p0z46O9#Pn2jhSw3E_(bxE@J|Dm?BE6REkwAs}gbl3%n` zOpYYWoT)UAq%>181C1k;=1827yf;v(W`OD_k?Duw3REvHK&1#kB@%&3xpGjQ8CfW) zE>M}iJ%Y+K09214Z%_eHy`%t@A_OYY2vnv+4k{Jg4OG^ynVPQ!Dl6Nn4X7STjJHq) zyT5)kT7EJLm*5sS*m{Nc@B)OE4olao^-Ibu7%G%34j|!0PD+ zt4G1>fYouH6~pS$o)y6=JKnR}ESGrA6L8##IN(jvd4V0*~x~q)=`gx(E+wIJSzfQ^YO6UnK%GQIe6(B*8}JY3Xi+9MQZLG zNIvx`CI^sZ&LldY`p#8`%+mCR8tD#d&J&qFA6KY(d4U>5fEtkqHOiHvCSFHLU!len z=n*xh0jPN*d4md|<`o5M6d}}zMyN3za@45cZm6-w%+zKr)L7Y8ZBX+hV!V|q*!}ej z;r?&eQEJap{US*y)=?fa7sG5@M_mG=12dO;R)m@CGS6zWM&dOaIPP*Bz$8&=b_K2n z(>jI6T~nmyu7u=ZQcMme%bcmqb}(6*-oT_v0j8@&rmw~om|j_cNfCfaBm$Fi%?2jv zD=?V?J%Y(J08CFNZ%_d+vGmRF<`p3@iAG>D9da~`aEihTxR_!)073=^e z>`p%CU58)m@*dYwYSIW#ejUYbE;i^IqT1F`Pl3^ar}dr{<0BuPk` zZNT+Nx>n(FHzQJW*Fo}mO))u=EOVyP@_9|ggn8|$c+IU)#6#&(31*jAuP>DvMG97YIso-v)vUbhX zd@WE}*;Z{p^$cRXg(}$n^=HEU->;+8qNVz?yo`JuCp zG{T$dkmF4Scf*^tYo_LF;myjnYPaF7U~hr9|KU1HE!u{+3t6}O^9C;=O79_@$hRuK z&gv`8UJ9oJZ7=hzM-_K|J{d0w6XRj?3Vgukl_E9wDhRMSfqQ{}U~AJ%(f0H3UC#kX zBeo}BEi!!@uC^y%qmIyyNt!8w?Maac3(6I?CsFgr=tTUXcbrgv3$|4X9XbTyx#YdRZrw|#6u-C`k?T|16oWm}nT4~GkO{xqeSf6oLDtLVw+ zaCPou&`ZeyT+u#;5D-02DJT41MRKFfzpo{V`S(mfcC10;P8c1~eVu2uLH90r?)5kz zL0Qu54Y(f0Z&Y~Py-B3z-V6c8mlsF9b8(ASLBlF!L68dd3oAMlD*ZzuU{u z{F;C%o`$k!dk;)7a|M_=%P{j^7#)~-pJzpw$?o>73yLFGyow3WeEA+q$RZ?7!h@0nOBDgT4SyGhu`$HEpT>X-V++l)ojOC)(iY zGcduE&Zs;LCI{(Ybl~Z8p4E015eNlvW03iV8XpZkGMNeRmCV=6~ zBGX^N6&Tpuo7{M~DW(X(AQFK=xdIrbcw!_~L!p{68#)HK|J6)TDD^esCR00?BK`6+ z0#aG9F-?1fjp+((zOLfDvcTqzQkF*m2vdY$BO1ZRw9R3og0~HuOnSD?2uT0oO}mCx zUeH>8nKGsX%dc;c$b+X~_t(D(m#%N!L+VVx?OdC=I`MNit^Evl3zFKGWFMa5Qw>?Jri%9RP`5 zOi<=DlT^P@&RWU(+|$BJRb*m3NM!n8TuqGcr=>RP z^T=tY2qs36Xkt{Ze3c!)n4nr}x;q3qbw$vl$7# zK%y5BlsU~LHNqkp6q!C6SGfD2I(wPbP7&Zv zB*L9?<+zJqL{N={yJMijozKx2u?M26O`Rp?nHcR zSjhyLy{+V>Bfxo#$n;6L0?vojTPH~6Oc4M_Bm$0d<-mD@?)b8k;k3rR0&R!&c|AdO z&X@6O2I1?mP~pq!&?CM~VeoYdd4tB_>%-ERhfWApgzzOA;mcIc@g)Vejjv4lwwCj1 z+Tl&B^B$a5*pL7G#Gk2U4ama2coCssw}6)0vZZMI7p^Mp+=;Uv!Q&TiW1OjP+Hm$D z@g8TV5*2V}=S0WdX>h>V=@4+H-7t?7*3gQx_*u>}i|i9{e%t{h}~%Y_g2TY@V4Dga8A%K@eO3Q$jg z3Q(qOkAO1e0Myy!4cY;yj~0MZga9QP0m{_N0VM^x0809{0HvCEKv`EsHOm2IYFT5o z0jgl_U{J2#rM}}!+nt+S}ZV&w)RKd>QN+{;ErD)3i{H))JexdrEE1J{P z2W{^qe3^Jo{D6&1hzi(PuFe^Em%;%Xmq8+IGzbbCqG@(HZj22J_k<0V2R5z{nO=u0 zY!(Y4g$!PPyxjB>k%NPApp5bV!et0+kMHpSMpf3WWU*3znbLh)(r5N^+0}BcztOV zzk3C1!D-viDb@BUE!cieS}H9#wRsIp*G&0QfaX)=y;9ydeLdQ^^C+*JEcCvuQh*wU#V{%$J50J2K;j52J%#<9sn#?!QeL}o7YON0-jZB%)r#f~FwE%YHz6e6R0sn5?YE}Wq?!!wl#ELr zpO#YFl^Rc_!0_zhaf;xt#IKx|>hGZ~IEh4}sljx?<}o*omx?G`<7wntsb5><%gx5P z9!8p}!55smdNkcUmMQtvd`=xfSAp^OBQO7b+#Qnn6G`dOR8!B;*bhlqjnSTJ@A}hC zl%!4#2kAG!vfp-0>pZHj(4>Qv`ZHhxi1EovrOB34g%1o`r&@pP;ybOm8=cvBCMo;V zOtH;p;cq+}XXOOHeiWqaiJt1?{t)9syZmQPsgL$j z*FtZjUZY9sZbTAzxEOWZbIo6MH$f|zLVl0rQ&<7^c*O8~ByI9aNq9CeGS0`(PC(Gq zVWq~2(4opzN7IzU{ZrNc#`DPCxEW``-u?adW43&v?D>S(UBH;)=nCE&uONBj1^CkJ zg}B*^a4HR+FBCu89o6BEP={MdmDl0L=C8V!C}*aSufwN(9mM$mt`09ndR&K>5zbzY z(@_UN{tCFI#@iX9tskL<`^s6lubP$n>RGwB&C0!fR_-0Ma$hqm_qDTf@0^wUx>>n* z&B}fKtlT#gT>4wjk9OpK^fHab>^|B|=Xdty{LW39ywhoYyfJ$tdD2YZb8Nf`uYXAN zW-byw$Ws1NEh(uo*Rj$@oMy*IKCAR%en$9s;X@l;aMQNNI`>aa)w^c_Gm~D}0 zEn%gFchUw~XR>Cnchb}{S~HjewpQ5IJ81`}I(}msaB}Qjg$kS;`y49h$7sdXu`$tT zpv}DTj&?ykLK!J3(Ruv{(H!b zzFS*P4gqfs!<)X+nd9y49&h@XXZCK@KGXL-BfPyw%yIW#5kBS(0dE<2(>=0&c8^3U6<)NY@*HO<23ZLLJBZQJK< z3wHi}Wi5{Q6CNk%550cYiAQ~lVU#PnchNUsBRrN8J{Xm7BoO&w%|5KUXZjv&<0E*z{rjkxS<%eh<&9_Bo{}1oF)%7>&=%`2r5_>Pqc_ z#uo{AOKZRO=3sKLEdE(dRi0zBUm{^@AF|c4*)IueFOdG3A~1d;5!jUrIoB$)FWazf zKdE#HO#9jGOXbn;YhH$Dm4ExzisRc#UoOhy7k0j^@^-QE6rms45sk2I1@`$jfdB5X zJ&=wJSW^kxR)51bzbY4gUv7AG*#EwqeqEDQrgV_C^*Ri?uM|2AruDB#hgaJGR|IDh zr$r-pn+}8FC+5^gV*?`t{KVYARV!F!>DRvp+J9os`f=R%s_(2GT4_;B!&zI&TYw%~ z>AL@z1+Z2UTGdL1z^<)yaJsmq!)&djIjNT>QmNgV$TV9tHdh~@vVJiPj?9hbq=H?{ zNyjoC_|wj=_TzP4Cbj{G!+!;E;serc{C@b35q>>aWE=GT<~G}KGx=U?w&4My^0{gb zTx^3r+?;)ty78GBype7AnwaD6>moJx4G6<`FXk#8>ss??3eU5D)3PhQHwfR7?_M1D zZ5(o4z2=2Vo+;S)4h|EJ75rWNY1YcwpO1H`(#v>Pg&6POlbC7y?lj~5tHS=P4Eu^; zyo*HRUAbE0-E?C4IJEy6TK6oh)OH{9n(8*rVpkCReVRgnpluJ(*J8}{!$90uD2Rdh zniTZVSA-0NXk;Kv!(bq8jSPf3L(sPt>jC;Q5MGBt_x(Z#48+&bLC_ah)C zUfth@`-6$U({QgZh3B}}mj(dtUtnb$)g;-U@ixwuvj>jbB<8sLfk@5$5CVcP0QdJ% zZl3c;u-*MQYyKr}rcCxMs@snNN)?u4KPG)@pDNdK>>C2aEmAB~1fxSF!h>?L9J?H{ z_EsxUN{3?i!Q1!=8N%GCNlJ60O_Ce%gxSi9W+nF1qHI=T-04hitXbKL&`L}+8ZK6N zIZThLv)vjjIL+#xX5!Qi`bV@xQ_~5h)+mP3?n^YU+<^NTc|*gnMEh1iskmCAiAE?j z&GIFhO6|5pGtI&h%}TT`Xj`Hc?A$=-&mM%w-Ds$bxjOMU1lIK2J;I~DL*ItSRmA&y z)XhZYcr-)Bx1V5TKUd|mf8mYr_zN+|-7iII?pF}-=)j{bqs*}S+`qQmO76|D4u-7# zxuHcO`M6svsz3{PHL$P^5-+5rAu#=oMA{ec1=D*46@SmF2w*A_Aw{`bcMVpW*~zZI zPj00Ry5AP1VaC6$()>NEA~543(V(!>!aZw%pWU;nr361yz~I;Yp4Bwq?&5ca3f!}P zC%{i!-Lr~D@G}MSdsda&?Vi;%3-_#6qBU*XJ!`?v;n#N0x)AK0J`4W-0Z(W8BmDh` z&S=A*?pb-CfqR4{AS1_LxMy7iEBn1_pDn~2;qL)4$K4-9YVMB^p0+-V;(*{ERcbnI zng2wL`!mj(=NabYt?fCAeZ`|+6*$de^%*ynkY*C>ky^k}>v`EO!Eyt1)gh@qv?GOi zK=K!Ir1r6YJs|n60CFi6=QDFe@PI@lf}?UF$FJ+HG=pRJdsZtBOZnHLJS^q+RGy!< z6(LJ08X?jO4EL=6iVULKPKY!edNhb$hXMDuLI(^YbC6Bj;>sY3Mu;>8a)YQ+yBS2& zEEq&9(OS37AQtR^$k-nK5AInP(;IDgJf>w2xle83@g8+(I=vKD_IK4i+Zk_!$A5@9 z?*1uKbN_;XNA1Of#|MSHn)^4*HN0~{lgqnm*C6jd%9BYzVIf!b^O#JjeA+4CsRH9< z1w6N6Eu}x!aAJy?{6wcM!EytPyW z)>0(Grj-_~TlH==S|sVB%_^C7UZIjVcM z5^sdfRLpT#5~;Z|gt>Y>!2A(lT=RS((&z58+)7>`QP7jTG%NUBp(pi#UPbbz>jVV7 z9~9721ke+Spr>3d=visKLC;DXbp1tXK<|eI^b`T~L?Y-}X#slwj-aPz67)=g9-(I% z0KI`i1)xXs8uY{!^h6`*nF2ZVRBAWqnPvfcR-!d+8}tfxK2gVZQRkgb;p)WRU*Y|S zE1IX(X>HhhG}!Zd%RJaT%xoI`B2gLI>t;*6IdOaW!v?MgTPh@_AdOcAK|NvoLR4iB{XTdAnfGVjK4d5Yt?p z_*??^mUBh;R6n-ile=V{gug52ENmSgpnB%T0Qgby3 z_?+?h{3T?K-r-L(C2PEg48#3bRe88)N&4@UccqsZr7?Dd%dIRQr66$bXS5{Iq0-+V3TS;}3J(<7CZwIIS?YqH>&yV6* zY1Xc77P4S_0LJ!F2e!}U8lpW$*>8p<+SmCvzEV5>)L(7*+kto%ci`_}qH_E_pPbmo z17T&0Q7+96z#HLjiJ0SV2a%fF5yITuz&LW3m#nz~hZ`ff2EMri2EM6v0|qg60wt|K zg4)&|K}aXIBzICV(+3gIBZyxVSW^U3q)3D{ICdC!F3Mwvk@1vc zO%d8*6pgTE1%@5QvNk>$00Y)I!kTH&qrvkU47jC*1{l0w1+0lHgC`nc&5F+rp1Nf2 zz*IGV^pJKuc~Cr98`ieEm1gbQX6y>~mROqyG9Jy(pOuSku0{-?KT2 zsG-V2o~tc7U>;nsb_A?!8Oo*E;drCDc)6J4ZWoc7+ZDodHMZ%Kv$=RSlN?XE+;^-X zW-=p*JYGtgDRbw2@m3~WDTRqxsoc{?63~SEYjyt5R6wQ(CR~vSY|7P|aILi7R)1F7 zpnFJB8qofYO4Bks%@hH&MIxkGX<_v@sw1qKDy#K{8ZES99ac2BW~r{WvbSDcZ&$lk zH$T>(juFnS@;%s8J;t)aS$Xb8-q6_C)ZYr{?4ye-n<^UN+$x{jRF&Fo+e+C_)GtQm!`jbFxgDb+i;L?Wmy~;V(Uqh6hA)mlAWc=K;OjxyE#?STu z)=2_dO-_lX)3=j4TP1&X8{X)+!)h_d-R_p&?EwjomtVsW_!w&HXMXs3=VZ-41)v~m zPtvVe)wi;C(d71NCK-M-?1j(mjgw~5pms2e5c<%x$izQ22-pYz!OylxDU@c?zWYfD z)tbS?kND8PcM#BE`kmm-76=6?g25yb4JPHv2h%p1$y8poEU)9fR*1FSes~*eaGcZ( zRah&p=^eMg{^GXPIP`%@UvR4L84CnC2ascTPAFR=`JPhi9P&SF9X-n0dh6(Z=KtC{ z*2~?kkc@ySGUyIeTlj9m3jJQ)bfqbx2&|AuWQDAof)#oJ50e9i_H202_JR=^fvvZK zw?JJnl3O5+30WYkcn=mx53#LqEYLwk)v-Vi1PdgtERbkqfvn=W1yZTqERbmyERdCG zjofB|3U;`)XzfuyUZalDau!#o4cZK^4;vHNAdRv%8^jYXeGiqj-5ZJ0e9P-!)33*$ z9gOacLvY-oINa6ldqg?SPaq;A~km;gf-yl ztN}lP-rAW~dL||!I%nXm+*(LY7EVV=;`AE`=+@#7LgVXADMfH=Arcu4Mk6VjBs=PH;o+5N>AsWHo3JkXvHGjU(PE)BR1VhuI>w?dpIPp3RxQ7=y zu;BZXba=NJT}5ckCmJEqbja6yD!AKCu65J6vrfybckMa-sBVqIb9!<0oZe#d=kyBX z>qS%6I;L&CSg^w!dMujrcM;d$xz3?6bNm9yWI30fujt-*q5R=b_bdm(JAy01wSdru z>m9(pUq`-^sG-VHePle7iw`W=CE;)2N~hmWg8Cy=FYx#_0-lvU64thtNP1Et@l0Yz zlb9o=1T=~LS$(6WY?>*8NlYZdqjKewSSaooNwD&x@pG)0Q;%V8s6_75+&Z@}4LWvg4xB=rJ8~JFbGe z*>US6LzDeXrQZ1YAE4<#J2qv?&W5Hw~e)5wZ_`}iDIl($h>>Fv=RBQa6N*A%r5UERd#~9BYQ922<|6} zIqn`KQgbIk!gTR5qzUaxpJqzd1KKq_r4hsPWJ#R9n}CKVO9wukAZ0Q|Fg!(~;i+8t z@bsm1N4v(Bl{V-eTa*UcF>jL_KWD~35ujZpLc5hV3)U|Jd(;*O{h3*UmgRU6N}sYiH^X_`lhcx#h4r+c;^n z90j|z{tWZ?$qY=)`4;E;mjO1}lm(2kd|oGLHidpqKExHx-x`^1Hbu{5{QUhx#>q;wrfmam!4AO9_rx!ugSTf|>hYP3 z`m7C~3tRZq7tVywD)@XB5&_kDs&>tt4*^u`02PnwlQlZSlVMPc5cMRJps%S3Q9N^-+<2XI$P@vhL?T2fSB|Kt+}>biMGm?Piz0#5W)(T# zic|!!5{Y1CMFvoX zrcw?x>Cp{nrfUG2m1rfk0j*%SudSBR=lT??egw1A4*mq5*4&XDR1G4Wm6LuX*(IuV&0Pv99_{%fITyLh;I6sNAg2%LrPKO+Ue-_+@4XzaK`zadw#V0- zqz1sd!sOUj_y8WyllX3?l*$wV@I)fuDOV0WD=j>7R>844hQ#jY#Y_qA%GVWIa92J@ zT5M-pC_;DTq7fKPjc`{U&g9r#xf)Vnv?gj25Ew0Bjbvc#ex%lGHQ=s9Kss%0!+knO z0St`d>Ly(@0;8#v-=s^AZa3+sYj`+gC0a>sH`@g}pRQZ`Mauw$J{oo^S0^3^!P@p* z5gt{E2#=*?E%E-0x4w*+>kg2wc^*86|*P9cGuvn=~Hsg zd9l>F5!{v3<8P3(OcCHtB|PIZTlqjP zD--~7WhqcM1r#C3iAKmb4f4a>s(pT#TYlb~$E_U{zi+2T6c(+`rU?j(7O=MJ5sO~k z0q0bTZ!fS&!y6XG6&6J!ESj!47NtiwESjzXi&mnQ)P}`^Ju4Pv7f<5q#9|*fo7;{> zb$S~XbuPlM5%m?#9E-QBH^$utRlMe|gLEi&M_RNwsuM!TX^)b$DMv1)lI=p@Y z{t9#bT6PoxmA>4$MSR!Qp0oj~Pc`B8p--S%5mNlztO%eg5&=cIauXS;)Z5%_Me=hg zMUl+SeEvV5n-#&_EE0_lD>BT@zl!E&wVfbnZFD^WLC^x$NA7UdUZzCe`*OSm7=^xJQfv{~ z6@5|#^u59)&m$o8VWV>NDFXC~MCenl7Wzyz)2BD|S&@V8l|_-Dk4=aieTo2mA`$wm z$bi1zM(9(+34Nx;s|W~vg-Si5&vXKPuSP&RZS4U1Mgsc875YRY^qERI`lLrU^qH;! zeO98C)P}x-otwtCdzOcQy+_P~zggbHQYG5(r@cgf4_zfH$Di#bj=S4b@tV6G0{(9C z_@n-IeESZ#-Z)N=ku`gb5_|7!@fr@(OsV`CZqPVNy3QospCU>z(0HfGA15F*vTu;z zRVxBCibQBst{jb~MYyY$La`1#PTr;jllSWiEttH=q=lcn6`{#nG(xDU5hm|%M3c9g zRtUAGyNiGjY5{9JLumKAYOmFRdp!cuX=@uM@9}_8aW#31MhG>P^2u9zbep_Q*D!fo ziB?kE8V5_4hG55S8OoZ(=idzd_Zmxi><%r#_FH z7+$we^rh5ABzSy;~yew+V!|h3fqOsGv*{;7ugLn{u`ARutJA-mJ($ z_nx9i@W$6ZCO1CYic|!66N&Il8OYY_%sp5yb(Zke)=k%dbt}<& zyAA6Fdp4}UkhXabSEn7l0K{I(6=8ij@My#OUaj-A6GZ7e?H;Z3wC}fyh4Zu@AfWTK z9~2#T_gK(<2ojFV>Q&Y+pv7sFcrVwQG7kHgb>wCrCS5o#TMev_!16<3FMRH!IQ&Q$ zZhmIgO3K9N%&bZI82)f(_8~~+$J}6aKQpVEF_Jz`V$MDj&`4S$So`w~ieMy(L?cPL zS|e%eO<^kAnORfu6IO_MKZ)0$nN{vkg-^+AdT-GT`zwl{qq7uNZQt0wRX8|nU0~&f zyq_ki4$fMZqKU%6*bVP0@o5 z(uoRF2OIP`1cb)G2JIMZkhrozqLB@^el52rQTch=-SKCiNB71TaNHMhbe>k9%zO?gSaYACkY?gH zzN8di#z`}|YxPTR7^$y_Q*&R1unyD_+K-{C&P1(7xKG>TY%I;NAzzck={*R@hU_Fr zzEfpoiok}5L^edZavNfr*<+jT-^aAl2Hn?-(ii|ctF$AnG(|7~M4|y;rG)_yp8!-d z2#D6A-yoo4c50_aR}A{Yw5ARi{3dxq?ZMzu>EjR6Dnc+6jbLaBm00(_gm_h$7zlkoRotlI=tQv^s8iEyo4;Z49c4W>qXaNNFkyoNpOWPEOa_I*ju zRI70JFZ~;z)+bapt{qXfy&%hq>Vcio(;_@W?P9 zP#nI>zcE`H8E$`N)-cCcj^9r_~L+V}DI8Ft(2ok!Eq z5HzxV^eMrD?T6iA)2PdzPF(EFg$YeoL8T5PIg;yB`1D*oAB*CTalH=S`?*H&D?MK0 zi}%IAhh=~BalZ!d2VBt@eJ+Z(jZr>3n(%X(yvy+tqCn}bkl}DN=_n!@hd-t<7>7TB zFmN?`+XmxL;fKNaax%9MMsfPHpOK`|eK1M|2IJ3F-t>zJXfW=oPS(-=G*bkFQ6w6S z%GDZ-kp>!!3U&;}Uy!>$`z3A|jM9H=gHdtuV3fSJ!T2i@_`&!xMKKta#l4h(4aQ#+ zY8#A-ZVg5Sf-XG{Mr$Gl<8R0r+K9o(o&MxT=11B{5gLr5(O|SjiU;G!*syP&k>MQN za~VJ*bFI5KVMncrYzb(|7m)2KGEq&dB?^a4J`c5<& zpQhG48=rA!@rga9pF1*_u{yUkR_C^lRi(*?pDAFNX&Zh8JIs2Ao#)2~FMHeg<9T=6 z_|sU_`1>PQKF*Y*&b1MqoiV^a8pf-}*_#392e_hfCh)e#+2M~l`tUh^c-xr1dY{#M ztloQ%z4u&8W*+Zdf_pO$g?HJ&yY*LpV8$@Zpy<&cUlcRGD+i&UXy+dkjhP&pCT1HLvUy1ob-R&zP6>Z5`Q- zb%f~??R6&~q<+|fM0L`9uk5#T-2tC})BSqr*#ziXmBZhJK8MO*CE0E~SyoAIF}GTk z|KPE=EFDXhE>rCC@kL82$+cs0-)a6c%{|22f1CRSb3b8eem1^-Q6;%}>_T@3o6OlUDhv}pZs{yj`-g?Apd;}kEE-$+wQ=J%~% z#BU|^9l2~Yc_-;dlh^Ge4c|4Q*jvdpn$(PQ7o7RYlSd@yO~!e{j_ViIlD|=xN;14e zv3r+Q;xk5v$$R3M-1E18)ACC4VJlkb@OXv=k)xkunGPZsp;zG8XuKw0jW&HW)RElFFgOs=Cn zS0-02+;PGDFshfq6ktkF=X<=j# zq@h35F(qMBw_@5~?TEWBnd40KCsf$;P4WyR6atiK-b8ENF5<;Xiu*N{J%dCd&<6@7 z0p)emZK*)!ARW=mkrWq_$n}CmPuLn&TrZ#>6dDFJPi0w(>fcj4dul;q18m{Swh{aC z->A3r*D1y0K-Vbr1kf$iced35^`-tXdJ-s>dc^2y8n{q#yJ>bR_vjg*?LZ;oIZ;lB zg7OTug^QOkN*9wYhOScf!*i37ZIR+2kjtzinrEJJ9!%2FVW8v4871BZ3P@&Kw4j3> zdHw)fjQD{1C&aN3w#ABLR6SHINA)=Iu`m!?Mr(Qvjr*rSe4LsfQpM*&lI`jcM%~1h zB9PFJv|Fta-Rb)Sj+?<-3H^nfpMdz7w?+&UzW@c$k$8<5A$|qgV`Vg+uID(ehmFxR zT6>HR0~L~m(bqupgbAo0T6T>H&~0=?UL$T0Rv@F1(JjIT^eC#|DT08mmTcQ3LV#$h zdP3Vo7*Hg#)QSk8Q9w`9U-jea3xM{CXzdn4v#G)a@hZ(^Z6g$mJ~WAVpq@Z)h(w?} z1G&OmA{l5I(BDNW(B*XASR>vSX+UnE59wD21MLs(G)fahtLP4-QO*hCBl>HpT#udw zQCyoC1auqFr(y^Y{bohBFT^mQgaAfgiEN-?pl`%Tp!?wYPmu$Z1zU$0js7h$alIcz z9&CZ=kxiQov=?y^+9g0g0!3cwhvf#|B0P=YoOIcLxoGJ(e73ZOYO5{$0I z==R3wrfBnlRsr?Zt_C`Q^*2mg0Q4i)*f?zwPz^k%Y1aU~0yJA&3bY>E**t9-&;X#t z+O)C=pcR$B>_3-pY(3g|*qKR~_X?WF{9 zZ)&#zg~PK&TLbhYJU`d&0QwN9L%S1Wrf*BXYj*?b+mb=91Jbvb0J$DW-(GBT1CYK= zgvfh=^lc(SZU)k~iD6zu+5iyu$AX!@HVkjJ^>rw*-a2P z%IARU$a8{NDW3u_axI5%4Km&m)VA?1aX&q4X6?5ZutgK2hdu17>K`SnIP85w}EPb?vd{RwE(S`?*iG;vMPB5 z$O*JTegMSZS5FWd<%d9V*m~}jNBz(?c?_r#TWhU6?uYiukNrFw<)?n=4f(krIwHUH zLv8XaKlHWy+7JCCzXiG%Ys_f)&JP6}{^jQxWB37RG>*w>hM)XAGY!80N!YRtzxu_E zGyLv{rWxpu$I+gn_pi`k@I&(qCO@>u5a5TF8?1ilW`oTSRT_f)&_+XuA9}zL2BeSm zZbO8h?QugSPzhRHZ;1BuJYLNLVOt8qC7cvpq45g4^4EWio+TA2BnI(llv%H z_Z%eRf?Mcn<>IKB^!nZ}!R%8Ndep|8>#k1zI*j>1Elj**KQ?TTSQzys@t?z(7Y5&^ znMHMYC-DJEKM)_5`YE+!msk{O7E92o)hX4Hnpg@xD(Nng6GFJ+QL064pgtPJi*XOg z^TY+=WyFKS?~%ToBaL)#K^?{mr78dZCH@0QR3^J(vHhHO$hnmhb&RxAeIhKzS`Q&fJnk`NlY#u~=ce2^1se*>5+SPs9laG_! zKjl~G5BceD2=M8PN!I;Wq<3nZ^L?+TTX?>SHKCSNab2oNNEI_eX4+H5&l!32lkKPw zK1Q7!`)Od8rYkm)jx)MXmu9-3<^db$Ujxli$cOx713eeeW517_X=l$|d#3m?eMfSp zNX)n)B~u)aK0xv>(d$Vb75N^?Gb0})c~{z(BsZq*A^Fkt-$*{3-av9uS{U*2v^R*m zSsrBxqUR&g-1pYBP?Ez_ zB8V@F{)Sq+Gx|5Q^F5Lu?^Y1RZ5~Nhy%$B!nWSGEaxe5NN#7@f_nmt~w$oYZg79a( zo>wI~f?4wod0ra(E3Lb(Bk(HP25i^{T(ow~!V<^F@bf|!lAJ_b6DtDlrDN#|E1!Kn z2;{wZxQ&m}ZML%=rO%Y}|5hHe7>`z+e*773;})Ljn1AN>{3jXaSh_}u&vBagm?kOI zM2(e4V_P7P#_+R_#(n=q>@jcbrL>3YM_^5SA26O?*!^SGPtCA2Db@Nv$#X45>D!6k zlF2ET`sMlQ54Y#cc}{NCAJ6vNDXr4i&O-r@(?^4UYYC;3E>Mn@`roT~#g+W!Ao zo&%@k8I|(Hf06AMZ#Mm?rMKrydo&-r&U8%ppJy_XL-?4i>#O|q zA)#G*J{$V{CwTRI7W3&>c=adyYhhh^PWB&s7X1Q0{R4Cc>}uzB=)Wf3r8(mDjrp0jUj3YMw%CpRPmk5a3t^FT z@31u`j<_+S8}XZBT*Fhv-Lai?2Rb?NUb?S57|mn&FP!7*9OK*%|lIFBwZh z*3mC*rymW@eH}hKL&Tju_K#eF&(2ti3|GZz;)&Dlj~3b99>7;ke6CY%mZ~r)(er!K?hOOtw@bB9H{W)U)*!D0v$=CkVpNE{g7BGQT{)aP z!%U}dJh=_}8uWh(akghKvom&jV;5lGy!Z@P@8_=myEnrJ0WJT7_Val1F=|}zQ=f#K zt8Q0R?I}@bzOO&^7!vI28ZrN~(!P_P$Z_>E?faLXG4|i>H7}eo>X52)Kt$q27QGaA?`MAVuGpX-?wl?*sKc5m6_lNe%xB8xauk^nwPx?dq zV^%-kX#X-q6L zbj30g=$JMwc^sijfhuB-()(OeTn=U}^JmWAOaEkGOsdKp;)L>rJ^-6DPm;(D5}ihxu>|G1r(4Y!J5AiZT) z5e3Aa5%lwJK2W20DoUgG9?Eo2)U%5UpqH&_>610PctDS{JRd%h&{IIitiLTR*E}V0gDD;uNk!-aY(fq^F@(DIceKQl!{s}+B;&Q_)($b8E=hPET;C=6S ztyrwktk8=_UN4?eC@XCK$TDHT@MW+|NKJpe( zn5oA-8}!4-HKN{&Qb*k>oC9>*$e;^G-6P7p$USO+ZCy5Mr$_Y9(mkIc^pGg?q8~@?5(gDpmmZq)7eO!8(7%mhPgrQq!(xa+A>9*l zYDIw;xpE#6_bBvO^vIk?#TG9r$k`*F_o8_@Pl$tFbaT#A;u|lzFK4g##fzTFd0xZ} z(yKofeK=>Iung8wYOEpm6;bF#vAKstl|pMnTseOeEefqB)Fhlk^tg;PL+C3SZx@S&W z@o2ktkwUXVZx|h-)hd(~cIW7D%{Wr`ToJTmbfi|GkSC~qbhPGC=tSZTqhqypg+@|b zf|fT*k9&qtvR3UyZ;bAybttqh{j<^OT2_wk8PfeOZERcF>DPj~Spfdr{GtLE5igw0z7kEihNmzm4Lt=uKlrX+6B?@iBRtbF^+tjs1Ac z`C7Rbb&i>=y$Hm|`4_{dY6q3=H+y*AG%bIO9`~Ewl{Zs+&5Oq6U7~&9MRW2l(?0j2 z>+-J9zW1WFc~@(Oysj*tWiQe~y=Yh75-r7xUd&sj6?oCRdDm;Jz3A(_64s=PhD9q z8Mj}{_9FMVmo>Hs@v@1pJPvu$GP+vxM?cEHb=iW_(%0f!U_FknX86lsAhJy+v;-A+ zP4A~Sc2)!F*I=({JAw48yw|mty`Bk%H?$VrhHI(A+UI&4uAUBSKdLyccUZe}JlE5& zo(^l*Da3s^tW^Q6q&F%j650l&UpXGuo&j2A35}Xewg!b#qZSZ)Q=tJ-6ScRr_kdPf z#zjSnx3ptG`qkmv+UG!eAKuo!0n+=|to;C_U(LLu{jPhWNAGC13EXP^dhi`B2Iv!9 z55A+ND8zkuM;oLNUmd=q4FT%Pnd3!wjC)6$syq)QPZNLF{_M3aHvCTC|IRj!|_@v}jpV z*z=fnd)Poiqk;6%{ZN|-w2Iz()##gunL48WE!95M7U-UqJ+aq1j%v$*R$5+(-57aP zyGi%7d`VaSt=g^1_A_0U4zrfKRmdfb_n9 zqP=;6ukW8|tqSqDe5y4T_-vnQ%?h#YGwquhKHFz>Tc;zoeXbd2`D~wS4u#nEg?8O+ zpY026wL)zBQfuaqGu3+dQfpI)ZS7iVk7`)prpKPtqwZ#2hzpY0pXsSw+~)p}g*vwf=#QHX8-)T$TwZ2#116=K_W z+K-ETw(m5{VjZ!qLtDGVXY0^v6k^-Iw9sWf+rP9Vpmkzt)K#(HYpFWIy8S`RQnteI z=VE`*R{Gg~(yF|+)VQCtV}7<@v<|QBzPMks+&^p35?=&en_!gHIsP+JWR`vh4@bk7p+NsvbuIk+Fd8OC3H!(y$>1PX*2feniq%awIy>E0QWDgxt&iP3Za+#kk zQm*#e_9aEicl>P8@-we3HaS`jyup_}HBK&6=-udPYlrU!RRmv1Sw zFTH=a4B4X4)U@-v^^nIEx+ZNwx1RDVg=WXE?$%od;w#g2;;#6=baTlFg#uy@bn7eQ z6v~SEv|B%!rqJ9-nU*PgDYQ1ynKnS4r_hU0qtdeEFoiygDoz_H^ME!Ab3%oEuxz-I z$84kcDQ+{N>=nKd94u?ffoQEfl{Q#@r6a8Ap;D~uvV}W`%1JtcZMZA~y47-B$V6?p zyjr1(kVr9HUgwRw%9$+>_{EKs?|E%6IY-L$n^6HdbL0>mQCs5DbL1_4w$XAE(0VaH zcF(xca)+NSPd)>rpC9sM-YuL{KR4#d0)_avG*;H#=Ch5JjS8`Coa}MC&o)jDQHX7S zk`*;&*fv3~UhA_>ked`@+eBG^kIyzyHYvom^QC=*&vw2{ zP>5~$vglr)EnhBHh;5VPo11;MNwQTTwoR7CYM*VgbST8ODY9Uz&o)JtD8#m@a#xMd zHdQ{O5Zk87nC(8>G}%KTwp}2bclc}<$To%8HeFhF`E1i=j6!THkQe>MXDg6bD#W%6 z<)&Jn?LxUrA-2ts@BP(hn;|~~;-lLYy=TgSkFrfaKg^Qjbwsw;de4#@{A{!3F0ZYp zYqtECpY0N9c??-7Zl&uId7+N5?aq-`dTmEsbL5kLwqkkEYs>6YEF<^$+A>%6&=KWa z(`T++=4YEHS9@*8`plE>_}Q+IpLuOV`(7ajKJLpoUyj!i?1 zwfvW#ZGp5r(bc~x{T9dzb%g#cl2-!h``9Ac_9T1i``9Acp%AZ!#d7>JKHFk>kwR>{ zMn3ke&vuP$P>5|yq&y8Cqf7g-a zwU{Ri%ccD#_PkY$PM9E<%L;`)>ee{!dfBW{LeOXZua|8Ky&FD3-XIJ2>v40bUYQJS zWVBMOp)1@n*%L^=_AZlIK&$AR*;wJfupRHWJ;b$wCANtvDmLL1sZkFHq*(&5Oezpo} zec9KRTV)s!_b)EuR+;Q)TP?f$*;dPeezx1?2tV8H@_avArJU|(tCYolw!7qfKiggM zT0h%bxx&x3R^I7nyGL&Dv)v=N``N1G!+y3Zx!2FOQSS4zZIo~L**3{{{cM}$XF&S? zaGxB1h(}4^AMTSEDa7077Wv+*KHC=gnL=!hd$djIYc40Jt#d#eYOW> zokDEeF7rO}*|y69h1lkijcq=gM>Z?OwjHwnr#{;bnWGTf9+C-P_-qeJmqKjYDQiyn zY&+#+3bAdMyzX0{ZI@iF5ZiXkwho_dx9m`eZGVwNe)8G=BF8Jlwuj|=zxZqq%g+>I zTdmCb&1b8XQx#&{Bl1nU|L)o*9+9mIvF)$2(BQNERhBBmwnt?Pz5m=5_o!@Fh;5I_ zD=j|TWAZwM*tSO+Z9dx`=}?GmkIM>rgQ6?v6i4ohLmIvv*`!3tl@;!yv_KYk| z@!6iCzj*J9+bf&tNlRDUUP+Hl=#5b3|BMf%HtTYihG#$67JhcULBxb}tUgghYmDyS zl}#$^6QQB>$5Y{}opRVCr z?CEROsd-Ls;Z-TV_Mc7uoz|~Gj5>?w>DF7)eK}p&R`oH|xA2o?-dZkA;l6ZPbq!Zs zn#6rMT|b%p&#dQh<|xxCQUAO7&(vS;MOWWXmi4X3pG#qg@{QPCXOX{7<1tC~TMMUa z?u}+2)*Daq{G)o4xPda5#S9#s&ZDD;6k9{MZ7+25wQzy+RN3E?_mQqWWoeR6K5RdA zEu0AA*0TQOwb`ZTUW}r3ee&AWw_*RS;$#hP^UtBpr|+%)dOhl74Y$XCZ|$<4n)Bq? zQ?2^m+7+v>eeV0o8m^`9tzG(4^PF6T^IU~JrOW@!np@IOujQ}tui`Irwtp9Uw!Zw) z{DvrhPtJDNAJBAd=e(Wx_x)`8lec!>e*B~U6D!Z5)U`*1h6boSU0b`aFE4cSjiib8 zK8@Z0=iYrz=K_OROM8=1OiAQyhoVF2n+1LA)z6#f_Bm4?-yU(M3_k10vA(_R{ zPv2F`SG~*Ar|I(ff1y44wW#lkRKEh$uPwii_38Cq==v*h7Q2%6?vt-?^=nK2D@^^G z^ZO9qgR-#i?8a5=ePO&G<Ks;#jrC+nBt45fQ6p`$%tGqYajdhGum*Q@Jw={pFj z``^f~A%mV%KV!0n-pNECb*tWYUH)%soh{bfoqN&4udc3Hg!>D~DiKB6nYlQnBk^LY_RNdL@pPOJ6YX|+P=`lKuK+4`c7)!D56di@GPZ^QrI)^fJY z{w?``K|WhM{q=kA}c>PSF?}_@+AT5};CB8H5;yl7qJmlTZ|6i5;d;0%1 zS&FH2t-(ZJBGS@G%K&i^(LADjqF|aIZ7NOKIFBfw-q5*-XdY2M&B-{G$V_vcT|_jG zD4!@;B#A{#Bz+?36G@*W9-%odnfi(pdib3R8bHf=!YS^gIW6y`x#jK@y@+}f zxrq7@^(E>@)SoDmXaLc9L|H@wi3Sl3CK^R897VJ4jiMSkR4qqzBYK2dawpA!cBi<2 zXgW~=(S<}ah-MO9L^O-&VxrkZg+!MST}m{EsEDYT=rW>3M2m^8AzDJTl*moAnrIEt z?L>DFRTA<4yNK>4T1&K!=pLf=L{&r^h&B@4OSFk-GtqrSTZpQO?kCzx^Z-!}(Kez7 ziMA7Yh;|S?M6{F0D)=|`Fyba!2P~%&52W!rnj9*Ig6D!y0G|dv3%nS7KKM1nBgJy? zmC&pK-%DJh9`O70nszj~AI(a}Pq1R~MouPa=+`mg6U8-dQ5LN2!$F z+TTv|I_Y_syD_s*8D&05>!0WAsX!GsJS#D?PbKF1sTBOBKowadh_mNDcvh3=K+OSp zGip^KstWS~RUvkp{A<)$isCo(9fIE!+YL{L;5W*uFlUfQ@H;?Ng5QO!qihQ_5AmhM z`OO{5Ml%X+lbeu-TT(AB4c$U|o`Gn$crN-8lKCyL&&AV8hqQ0SV5cS;F$a)U8x;Pn z)`(ew8u5*;Rl6hocg?EZ8`DVn`K_TQw7&`8;5FebrlB;3iE_7iA~8)iQ>_J5)^ zxyVWwA$w|XC5(|CykoRmm`LxzyGT{|-k^oDCCWCMhoX!)&mz=@*@fCLyO5Kt5n4Mc zmSObv%5~`v%MQ})mwRPK_cx@Gs_&Pbg1_pp(|WWS9HdDw)KTvy8=Tr;=VZ-An#G1} z;#Gz<)W@B~xnFCjUr!kFG@frIPYaJ9WX#j}Yt=k$K+;H(`8(2ljlWsVhczGieCP`h zRY3Zc#sWkYz*+!nA)*RlErh-h`VvHykp7^t1W_fhmcUwys8U!a_iql!jjImrW(RuSj^ zR$*kSXk<2;su5d_*lPG!!?PNm9#}oFdNlr0+5;aCd_3@}g-mWMGc6j=UDB-a95ik4X@^fc zeA?mD4r>Rjon$Qz=!CVCtT&L%u}0d!WULim@!zXblJ@GpgbspL5$N)c5G|5Et7;p2vn zTkm>bAo6&%6&u~Gw!EQIO#sQ6!G`V&sX|@Zef#+gyL7zo@ftGFH zw}-L~{MHbkO%B?#4B>RF%QAczIZ@jOO&(=<&z@)CnS=5SJabT43!voj-gUz<@bu*&gF@;ClEs!oLyzP4I7me-r$h;MoMvX0i^{nqh4=@KLwfz(?I?1JCTx zOrEPq<~Fpzvjv_lu(rV30&5$rZLqc(_!!#;pEmfk!KWQQ?eJ-bwH?-WSUYI^4~KNn z_z%=N41A33Fz`$qowP0@G^6o?@Q_fWk*!7}A8Cz7w%Uzsb&z#Jr~_7qk&k!|SQB7% zl66I>6IQ2@k9$s7U9e^uc?7bI+}|uCANR71+}~{Iv!Tx>{e6~f=<_I>7M6!>d8n0# zZ28DmK-R%w1+W&NRspPqu$GW@L0Ac_C9syjS_-S1tlPufu)4|mfXxkS8LSm#JrY(y z)~|_k-z%Z7B7H=76{4z)y!TbXS`Dj*tOem7Bkx%rBkx%rBkx%rBkx%rBkx%rBkx%r zWbh!i7O`~{dsld!k!MAzgT5a6X|&J27~V)SU5^=gevL*W?-z|mo>`;O$g^oQ8u{Io zCi2m*xV{K)hJQ0Wo8j4P3ymhuW;Ag&J2ZA^?9e!%aX{mMCIOlRXcC}tLgR$S35^RH7c?$tvY^R= zCJUNuXtJTnh9(c1JZSQu$%iH%ntW&qOgx`vfr;nSEEIf|SV%qz#QFNX(8M!r7Q$MB z>*_)iUtKT9*90ZVR${73oFGd~e4OE{?(yW$Ux1X7RbLkuI}YKig+dd5XKVA8g(=UuK&vqE)qYR9YSKu7@CQsTyZ%q`4RtMOw8{!EVyRHamrVO#s zdniLn^j>7xiwrGf-J-Rb_(<4h;`@#^6Yt|~CZ5ft&BXIow3&Ez)HV~}kF=w;Z6==a zr_IE7C2c02FSP?1I!yevd{}DTW&XVUAvj<+RZ#Og5Atfb~9JEo4K`iGq=`m=GHn8 zw4+x(n4^sO~az-(8d~)RaYS*rK_R&4p|(WOE@~HnL@- z4cTZzHbx*DvDs)zHe$08n~m6P#O9g#8;g81A2IUGe0Nr0=D9oy%sfj`0sIS)ztGHI zT$I4G(9Cy9rSL2zPZ3uN&r*20$ul*s44!WCEHhV-=T&hP>Kk>~XII(XK>vz|N`#y7&Vo;=?V zXo6=Gc|IK91kWaTHk0Se@h$LdCeKhy8_Dz~j`=#8_p{y1^M1COzX)2OwVCS^2ArgaGbWLcr{d6D0FkB?Rym?hN4XE?fb;rknwMFOUV# zEb<(em<7))cxIDlabg}kv&l2jmJiQ-^4yx356^sf7Le!O#6ox$kmqz;2|P>4^ZUdS zc$UDklsv!n1-r580~VSw)@?B~`(*3ZB*E zxi85B&ua2C*lXcgOP;?a)xxtDo^|9In_LgiI`Yi5H!@{$&IxIXNtHV-6GqE}>JO``8!n3bBEIjY3 z!@@JJ{v>9HEl!zl$VhXum1cT%Sa^_SBK?rdINEu%hh4wSzH|!p1;*$ z;h9^>pXO|JSoqr(7qu!;IxPHUOO}%PyOwMv^H(i-O6G4`@|DbAv=k_rzh@~_GJnld zqGbM-rBuoMC5v0h{2fb~lKCr^3MKP5ER{;;FIcLS%-^q6E1ADu@hF+UU8z+vf4Nep zWd3fYUdjB`N+aYZ3m>nVEVDB4ay3mG4Gf@N|*q?@kvyUGU5z&$#q#cxI93H$nN33#|M!sSrMe zR=z(iwDSF6p_OO6B~CNm7FzkaS)rBZy)Crz3_FEZp7%B%XRbmk-{s9WBz0e#UTEd> zU?J6AWh$}qRZyXo&xVCoz8@^H;(F4`*IFf3z7{G)-BQ#oMcq==B~EoqQMVLzOHsEJ zbxTpD6je%*-;F$O>Nua#;O7tDltlx7^O;#QWbJmA!ikGRv~8?S~XBFkV&r*$?Rmj;GP@5sU zS0i&ZGFKzB2bn#{>9O(?wp!XM=sjsG&#p_HTJAv=52|=jrOwJ%EVWiX`*={%Lluu% z>QT{yiuI^fk6QJp)reY+sMUyCjaGg-#}#KJG@>GLs@RB%ji}g&ijAn!h$@Z9--K*U z$kv2xO;&!6*NpZzQMRAD6Q^uV$kv2xO~}@Q_BW&bO~~9tnXk3Bq5VzB--h*C+qhdQMwxeP@dck#PB($S0ajM&ny6vdjj=Jrr)s9;2sM3L)9mv^%oSkTYhm~jD z?LeLm=X%R7**gR=c*H3ss&)`6VHK;FxYfxMR)19>mA2jU7gkoRtTAg^V6 zAdfuPnvq}+9D?-b(F(xUvo8D)vBJ*&>?**&N8`2;`AZ2;?ot zLD??u=|DCIvN@2=foutZyv;a}(?K~`20GDl2QoX+awl5uM9W>MiQkTV|{@{l=?GT#_nfDy<;&H{`; z0Y;zzBT$Gcg{V@9Dusdke6J9-$V#;eQL7NO3Q?;NwF*(Ckg6OAEn^PDCMW4C^EY#^Dn`T2Hy7ERPo**H}W?ccnfSa z@D|u;;4QEWnahy544KQ2xeS@hkhu(*%aFMYnahx~3^^+T`7B%!$nyqPkd?0Rk+U+8 zzo)CBEg?}>2J&;iYIs(YXKn9lcvi#HL!Phou7#(EJVQe3$dj({$urnh2hTcq){|#X zS0g;@$#X(z6Fi&9^Kw@cJe%OzOr9%UE%0n6&lRC<@N6T`7hG-dY=dVzc^+|fz_Xn^ zwXjZjc9LgQpH6so!qaFg4A1Oiw{ee*Hhu=^uyH#bw%HjA`#5aecZZGl=mhdy)5i(V z1oB)E=7Oh-JYVkPf~O0fS>$=FPc}TW$a8yG9z65NGpTPLJoDh0Po6{j7Qi!~JdcDG z!n2S(|J=6_o`vu%AM% zo_C|`Z2UB!4%zCEt&TFxwAUfF4zYDMzOJZ4hB{=ZM}~T2s7Ho+WT;1mdSs|ahI(YE zM{GS}8xh-x*ha)Q+IW8CMr3G2R3k;ru{2U1*7FE7BDM*!O^9tmY!hOe5Zi>9zhX@M*E}olCI{az=_-GM~O?oF)GmW=)tS-E_w~U-FZ~S>P=;zK89pg@-Oq z;r9nRDH}iOYPRunur?ddwAe;1q$fh?%QX3Ix51h1Dr&3!{LBs;&&9mbFe!Ex$vh)- zCv9UNh8yiX)1uLiYiv8thIaO}+h+!pWjgHalVInkyH0Qycoujzcpi8@cma4JcnNqZ zxEs6-yaK$?%)ew++WFaC0iM7V;0a6tp1>5E`L~HmJI`TKfafO#cydyJCns*imLjSY zQKg6~#d8}s#a5ZC?0h~dMQkZzOA%X%*lN_RF!LkN5As(dTQ#y(BU?SP)uGpQ$X17J^=AGprq0asHP=xT?c@>Z9;4lVw=tUOHC7MHKA4${G9>3b`k>k?3NI~XSaj^KD#*sxK=^{&(53> zz|Z9p0{DqsLI6LJ%SKcdqOuT`g{Z6mo{Kp<0KbMKDhp9rh$=u-KBDpwm5-z{7c|p0{@Z#eri`rQ4iRfu=Yz3TY}gU#8y!3QF?yDe|@S9v1N!YgJ&5$ z%iviJ&nkFU!LtgURq(8WXB9l_(4Jbfrxu>I@T?8snUrhcUkm@b0RH8u7Ew(Wo;SJ4 z!t*9KS$N*$W($vblZ9tbZnE(9)@0%Bt=YoA9JOF;X|nK4%FP!3MX8BC%wHeVY~f#> znl1c$QyYAmE&K~qJIVC?*}}g-HCcEaHCcEawOja?+zvbczR+gjd6qk|)wNmp`nJu& zXN@)spEcT$zYVc%i0#A-5}g+Q&DTiR*z03D(Pks=0gbo^G}6^Ly-`8e+sC4fR<4*} zRoMq+Th530AUB_B^KIJSckBo{B&|2UXCu6YZ^mIFbbNZ<-Z!1+_k=g07m5MOOy$uX`1N+`?-3SHr(L zke^_CD5}crK~y!OsuATuR5haN5LJh$`atZ1f%~ZM^@ys&)mj}zt&gckR2`z45Y>dJ z=0M&fn&IDsDov=;4F4whx52*+{_UvJ7RYlYwLnop-5oNUD_g_Rga0YbX4444_1o%7X3`kGl>3m0fI{Y0r9yb^KUGR6=c-*om z>H%98qFjh_Au0<|E=1)aDi2Zl@151xhaEQDvFjb}hELFPjE7s9{9 z#`{zWq6!h^w(*|jw(*|jw(*|jrt21Z%3Y&($L}(BzDlv%Ih)arz17a^ zG@Skx@%zKV>8)4heZX^xOZuCXM~Tzhm&EDqOXBqQCHc_bttEax_#W^B;77o}0@pP5 zi3Cpv9|)ccej)fJ;Pb(+0lyJ^4ftm8ZQzf9{|auBoH-0U6+9DsEci6=V(@FgZvns1 zz)|zSmxJE|zK*yQn+@E%-QZ7x9|AuN{vr6s;NOD(3La$Ss7UZs@IK%}!N-D61D^$6 z488z-IruH$>%cdIZv%e>d@uL`@OQvJ2LA~>$i&rqf)4~AK|EZ{GI39@0lx)&Gx%=s zz2FDH4}*UU{u6kZnPYo`4+Wn9ej#`<_%iS{;G4mBgFgwr5BweQ&%u8Jw+3+LNbpqf zbnu?wL%}D3&j@!len_<16m_;BzsVj9Wk zi#^1ri>Hat7LCN`LUXnFfaIl+ZxF{wUL|bfSJKFhF zVVw)jTxj+~-VgaWiOl+tb(S7 zG?$-W1I>158c6f-`3=zQho+S@-<;nH&2eZ%z!ou(J|N)sq>y}lehTCq@FMVX@EWqd zm|p|A0lbwo=1HxPg#|sbye+=JGzD@Fc#&m`m@%mcayfVnY3`p?1Gxdb651iZzSp;qoH%%6SXhYx~+!xX`O-_L(4VoO%#7)V8W(+h% zq`7iR5j1n5DJRWSQ_7)P1x*cU#MBySwnNiEnu${zpxF;iD`~2xwnB3p8ev0AY-kDO zG{`xS$3QNEJQs2~;R83p?`LksopzlpkfFrLQaF619=SO zBFJ+gms3>h1?AAJf~E%YcE}B6&6wT*&3e?FNbCoG&PX7LvDb)A95??%P7*FfG5xdHNi$gPl%LlzF?cOXCHG{`xS$3QNEJQs2~8Jy zu!1*$ixk%6fR}?efQwYA;G!S&;N{>A;G#eD z;N{>A;35-x@N)15@Yc*NBKG2x0o2Zmi-`a2;u_)!vs;NTot<*t7I9#95%Gk=8sduz zTZz9~n3AUVB{|Am_-hWIw||!*D~6VUFQ?!&bvHhF1)KH+*d9Fc^&C##G}ZW2v#q_yoN@ z`-?H%bfKxnwBPiJ$!fmb{HQrT;7S`@S^=pR9e!TG`W1h)hSh4c%#AY@s{rjX}CehL{J zx*&9W=&PY$ho*k0lOG zT9@>BQd!zZX``L@IKObtOFx=EDdVvWOZTU{FX<7}^XHzkdo}dx(|djIpL$Po?RIH> zX7$lqoy$8}Ark%c}45qLBLPQ3A|2K-R>~rXg&GX4?8GW5ev!I5* zF|LbuPj4o9U-%K?yPO{q@1Cx6*6UVXKPiee6QkJEU+?d~5*d!i9wVRMkaI=)CnO)r z;Mm2nUl7+dt3x=?;h68oN%~UJK>Y}#SuJSxC-fI1zkMxcWE@FXc5W8Kco?ng5Cxu&##C}aYCe% z{55g9!_&GG@1^x5-e2oYJX7mK)&az&n4|S0xrn%=Z>Tbf8^z_Cfkygr%}8tDa{8M^ zDU>IGzF56VixEq-%e7c>y>=D7Q+yA}iDDDU$zqpw9<}0GZ7_Y^_&U{ciZ`iN51N6x zC-DxFdy4N#?kRpGxtI8vpl6%wV&%Nm@SSfoFHrcT&m>F ze2thv@-^Zjl9z~!NnRofNnR>0C3&eRBH1l2BiSuVNM0>oAbGWDAbE{=iR3k+k>uOO z%Ou|}4w8I__#4T0h$fON#p@(jiZ@BVQ@lm;ouZlKyTso~zDvAE^4;QnlJ6ERB(D|! zAbG85C3&6rh~#ymjpTd8CnVn^J|lU(_=4p1qMhU_af0M3@eRov#6L;iAUa6iD846o zqxg~Jd&SQr-zz#v-Xwk_c@urS-?r43ZxdJxJaz zdXY@euSxcZz9iFM_aS+Q7(nt4kwx-DVi3s>i6JEK6vIf~DY8k9qkXZ5$fhl;Sj?yO zbF;XG)?#^uIs#s=f(MvG~HDbIAd=^E1>Q?uy@Q=~c9yu|!~`FZoVW@|vtfPn!Q z2HYO-mw=}N-U|38z+%a;Otf5JSz}peIcRyy5^cS}dZl%b^<(ST)~vwG1D6Co7kD)A z*T6{IdA9Ry^KC0_yKVby$8EpZV(l*bQ2T8AGJBc*b$de4prGQQoF+C4NkbWZ5Cp<?hJG0OQ)qNp zzpzPR^TJkzZ3){Ob~x<2Fk5)f@QLB2;kSnG34bU2qi_)s9?>mgP{jC%iz7-SZi-kN z@nA$<#LE%yMSKy_84>J=a%4Di9n&3Uj#Z9l98r;dBKJfdiTo)tBWiHe_^3TmVbQlo zzY+a@v@NE8%#fH%Vs4JPJ?5pDj+oAv{;`+EE{?q|c2De^vERo=#|?_RH14jrJ#inz z$@uj6^W!g%Um3qW{)PA>@h9THkB?61nJ_HjzJ#X}K1t9L6B0)z&PsGAZcN;h*pzr8 z(VFB;8kba@RFU?<()USW$*$zww`qg!}dX4;grg=u%B)uz3g_H|mI zGu=7NImLOS^8x3x&Uc(YIK$KXq>oOYoIWdkb^3<%XVVQCJu;SM+?vsx(UOtXePs9P z-3z-{c0b+Z%LK|OMNZ0)hD$MZeD>XFxTYR`E+H~0Ko&yRX0_UhhiK(Cv6-QMfz zUdMY`dS~~(q<2~G2Yc`D{ZVhTE7g_ly41DYRpolhb=cMJ3hvXhPhOwP`>gC!-RFfq zNBVU1iRzo#H^1+~zH9n=`X222d0$IESHC~?yR6@}{i^%z>-R~&to}Fkf2RN2{Ub6* zXHLtUlj+X9JM-Sm2QqhNKAQP-=8KuHWWJI4ZsyUi zZ~b4!uq$Z>9^K2QJC@R=3uJ-*Wem$p<)sn1SQ4V&um_b+(3Oq;FJssgnlD7p=hHph ztxKnSalY?prmR!_`lX+)OFToqSejMl)Yx)w4PV{WXrGhL{CxJ$plh)1L_O&Gt0z$} zqTWOG2M5!+H<-@3!E~+-rgLmCom+$HoEj{K(ACaRqG3eCiL!}C z5RD`nMU+F7OEj8j3{f7@SfX)6e zA#~miq4RAB9SuY1{2D^%)et(LhR}I5gwCHKblwc1^JNH~CqwA`7(&O)5IP@*(6irA zQ9?A2=yIYfh^{1>PjnU0)kLL43y2mHEh1V>bPdrGqNPM`qGfdL_h+JOiLN7BPINud z4Mb%`Hxk`Mw1TLdXeH6jM5~A@h;AXemFPC2)iio*X!LHU(Yu32uaZXZP8z+tXw>ee zQCmx+wvI;a9vZdvG-_2eY8z<8HqwaQOCz?4Mr<>U*nQNyE!4Ye>fQa+yRFo_2dH;7 z)Vpoey9cRv+o^XR>fH|N-9yxaoz!~%XAm3gyfmw&MU2FZuoiIz%`hcsE$cW~;ZWrl zkEKT24##V>&FFdhtK|T-9Hf>*)N+_wj!?^yYB@?RbJcRRT8>xs$E*4i6`rW@`N}U} zEhnkvWVM{4mPKlLnOc^pNTZBP1mxs~3n^vejd{m)AOXX-B>wf?N^*DCvU%6^@)U#INLmHm3P zyg@C?)bd8Pyh+s2murHy)tP9|3Z*Ys`f{aTsq{CiaFHO)XceDMa#I;CHy^!F%ykGK-Y$Mp)YSL3o?`Bka$ z-k|Iolzt;&9`AdV{$3S#ud;7a_RVT}pIUBF%llQ{t%P|zx2pK9D*gdwuTlQnl;1WQ zXRiC8(r;IKn*9QLkJ9f@`W>X_?O=ymFApjEPG#Sz>^qfxm#Vv4*>|hFe^L5}mHuI+ zuT{8K;YSpHMCE-%<^8MD|5f=ts_>)A?@{IVn9@I{^p7e19@2BaA6NFrmHlyLe?r;o zl)X;Xc~a@0Qu?Qq{%NIuM(LkX`JPev_Nw*ptg=6=?9VFubIM+?@;tAWFDU;P#5f!W zUsU=ArEefTua5>5zfaj;Qp^3yZ@(Cfb9AH9A5hDemHlNE|BAw|DF1^B(+oq{FAk}= zzp3S`%KobIZ&Lc#l>RlfKfJE=Z>aVDrox96eoNuE)v{SF-%-oItNQOM{GM7KQOoyf z$=m(=s@?}m-=gw=sPI43@~HAZs>Zcd>5nP>F*UBoRNar1{kU4TspZFN`H8CYsluNr z{JFwks%5*4B_@4@Yr*MbD|5EsSg?~`^M}>b<_-BQGQMgm#UlsmM z;ok}K`2DW>D>VJQplP~Z)AaQ(mEJ&lau-I0O$wV84p2*rT3XdIP%UlB->z_w!odoM zC>%;lZda(PAExx-N*}KD5o+mBdWWW;uN+Drsp6uPJxbZ5ls#J6W7INME#uTOo|fE> zcun7r5|lnsEtAwTS@|U^zZ9iURm*N_nWp^Gl%G?zBVFm!HT^u2q4eF=xb#r*Jr(Yy z{Cg>Xm(ur9%f8CLpThkW&Qy4S!sjWRrSfH|x&xJdkkSuQ`oT&+M8ywPc$mV&70y<8 zgu){g9;I-O!nq2MR(OoU^!HV9+!?FzIA#Bn!s7|^dKs_!KSAjys^$4=nXi_U)N-;~ zPEpHgYB^mkFI3B!YB@_SXRGBUYB@(Oi`8=h1jv12ucSAZWIoXm@rdDw*hlmx(NUrkM86W*jYmX0(HNr3h;Ap^P4pJgw?y%# zBVw58dde|at2Et&!Dn|x( zm+OdL34DS4UlQ}}i)5Ak8X`Kz+g~R9H=@DX=-^l6t-&A2*Mq;5hLA61dPqC+j}Q3< z%d10v#PY6?PAvC?JgV&reO~)GG)jA4#%c5IPHl%hiI&}nT%_wuluf=lL=%h)9b1g= z%lm1$)3_q?ptjI))Ho&TsPRgo>xph9Y9MMNdWYy3QAYGpV?UzdM0rG$h-MM3C#oje zMYMqGd#zh;|S?N%S|OcZohFGRIO3Q5w+@qOn95 z#?m>7$QE}*loNFj6~-SCb@2zpnuH_b2cjv7N5oE|--%`>9TATb1tcF4HEBnLa2^pw zM2`_!(qETj({~5lPxJ`UOGIxG*)nzq#1r)=%E<__tS8!@(bMuV(Z4dLSg!6q#d0Ij zMxtHa@3tiLxZBd7XcAFzkJl_sME@ZAfymm^W_1&-CfY%?wb1@KCDAWLp}n_RQ+gi}(} z9k7DvZXyp+9nm48BSa^Ne(M)x$?hLy$?xCOax2l6{zrr}^N6@5^QbXtz)@o#qESQ_ z5nVyFoaiH>?}!4*>g>mm)e143kvoI7Vu-u$JDON*C}DJ@>QbU^<({YCbqMSq?*dERyI+@;GG z&K-H#oH;{SJGFR8acSwi(s7HHj4hsfrPoL%PO)g|Ja#2?l0ykpXN%1|-J4W%<}F;d zVBV5q_q>r5PKuGsusAhwX8$5iFn`HX)l~L|u3%CAd_Uy?C{OKdCUuq*oTkq_i~cO? z0cX~qMV)!xS=`T}&&)cD|5@~z1JB}r7JcTRv-qD)Klm*Ew2_=?G>7Wy)7D+4cil}{ zk~i=2;$@|ND-p(mMY&6s6ff5|G+MO-pgnDE%{ilbfUZ8R?0|EX)s6n!H*Znrame)f z3$G}h=WPpgrzOu~&)h4nSTgSl+IYRrgP}jod!R4x=|ceHshja&z|9P`vc&F^d)~E}iF|zi8p~Ma!1Vok!~Y`3tX} zSHk<;s|{_uMOeDaOw$UHpIA`~D!gk1D^O(Mr2oN$Z_i3CnmbFPx2KY;W}2 zh7-cFc4h6IR+6m%#}&`QYPhG z>^sAm3s8nLSNH;TIAtzyfeIWZ2PvmQj(k4vb@#WwJ+o`Aq(5?1=O5esUcdMH_3PKK zf6Yt_KC;0*wZd#`L8Dqr3Py(Sn=4G08&GIwwonr(zBOVNK_v#V9<>>%5cBVWVp$?uL zKQ|kY+;h5A3&0~4^i(2~0ul&0I9>u{a%z+-Qvqi9Y@=2fo-WP6R}#8Cg?a!T z(;_f1>FI^qIg5zn0#r*+!9Z{dMlxO<^4#JioT0aFIw3{-MbQMko#-~#iUIKQW;zKl**@0 z%Qzr2m}GQ2Asp#0UzhQ1q1fzTcEcUnP^axyC#Gqg9A?;u0SX5;ttk-c0c-iZqJ*8I z%qNNhiWLRQDcYuVN9;X7IC5m!fW%<8wn_&o?R`L`nQn_IfUuhdA0{@xi#v|u+;nM| zxpNOLWcL?lCW{4gs??YmDl`ga>|7n13?|cNeeli_=F{?&nSiZI4bH&yIdhVKf|VM^ zr)*55E|d0c({4{)F7Q!0Qb!<} zy`xqtoH<;&Z?1%{EyCDZVS-`jJFTXr1Cp{kOO2t@)HD`7#k~v%Se$bL*mY)N;tnk9 z5FIQU0<0FTWmv3)i?mh()ky0eubwGY+K^!CZnUC*vvjTnc}x_YkWe9=fCchwslr}q zOt}1REc$>ND@|3UM3Qk`WII>3P*EM*LM^&le7n`UX|!3wo4PD3M6=OSyqj zH0-+HA!iV`TaeyK92J**h}ieTY~gA@y{^RMP4DIzgN=#AOcWx-cr`4w!IG3CI=H#| zw}Jx%<`BDApbh*sfm?zF_YmeVy0bh};?i?pp;ClgxEi6owd#z;uxYYbHGbI&p)<1> z8}RMBt8^G->A!oi_rlJy_afUqm0FIofsm;nIeo0U;zsK2N)A?h)OO?FQhSi2E{P5_zb~?#S(7OS)faa+8nyD| z92B{8t{gx^rOCNdr)cklB5F!f0I7GE>*W;j?mBvKa{AnOxe>}pEMpxYk#cadUd7Hk zsL;!(6^d|&+L?rSyikJ|?ybQCAE<@}s(7ikuUssaDhUI&MWsrebDeLo6TcTeeRrwW zzR-;+ohMs(hf4LST3IHMM6lgPjluw>T7p*N+ju`+I4ik&QttFQRKtQ{s?l1or#gGC z#x-72v}gaAbZ)s&39wEQixATiayv=|-zZO(xyMdQ)%oRs!AwlaNKgPX?0D7U3rSw- zVWIG7!g0oEkr5*&L|TlUiX;wKFqh70+>v-89*;>*0nF+MWtz99SD>gTZwX5{Daz!O zLNKgFGp7*6xCz@_m3u#rYs`2Jebx=oNRy1#Hm_gs&sO0T9#F|9)!`UGtM3gh#f3m+OPT8jw#N>@d6n!GWJm=P3);~ zT{IfQE_^=@*f2x5#RbnM1SKbL;<=o{BqKu?A+IPH@h8do`33PRCU&R>h3MMI^GF)3K*tZ2aClrgc+zc7%5|+mR-kGSS-1!5QXQo&*ijrVlxi(2 zLwH0BX@kpKw6R`3Rk6FT;j=Qwc?^p6O!0NYUe*_NxS2R^XbF*0(TXp^SyZ8yuk=4LNT(TsmnFfX#S9D(jg_ zu}~`pIC0DX)-lz3lI#X#n-bBe4PFOVn}SIM&-6JpLYOW^gV_gX1=#eCR8Cgi_C)fYhBoA( zqF{BfN|yT-=h--*zfXf2V`u92LeW0ZrptEjYD`Q_>NN*kx!o;CyJJ7uA@Py|4yv~m za{3}cBiNEr7khOPV7)4?2%YS*!*Gh4b9FAR^^zmm%Q%GFC&+|(po$3zt7uE?%KUu@ zwn@7D@S9icPtu!LBGQ{zVumEpq)w_vb_b(^QwOyVP-IK(c~x?vlk2i1xYP&TZH<)| z5c_EnVh5)vYj8@Egk2A}QIZ4;kJ95l4?ZBrr5;2iz#)zYu^0<2kSeDRqQPLdcu zQB~b#CT8qs3*5XuK2?`fJPa?_41^BB(pU7Jk)U0V1*(9&c9#_6)J!Y>mC>BRN6p1|6%mPLEH z2B^y#u28Oc8BR^V5A!9F^ud543|ax&9*|m-!cT&-*d>Fame^=_gms?3*Q)hdy$=mI zLSIe>U_g+n4ZaW**)C-;LX+IOpq=qtS0`Rv58StIucc*4EL+BdvfZp>AQzIkM0+qD za_gp?3c+4U{=hO)qyDDC&IynxMg@OZAhJ#L94w1t*BQ9_P`p;BZtyH>%e5c$8H@ z5mSQ3gj8!_uTpQ&N%k{UA4sm!of`xg@q_?YX9y6}{&N{#93!)NW*EZE8bH>F3J zvW1d6FAPvz%ei|HGmg`Bu`5&7#t6zhrW;HobCoeH^-)QsI#-`QXNM?n8+l&r?!C=K zG0CIG!W0g9aH1)nLb6x;IL+m1?_f%jjoC>S(WhR!xFw4hpxp}w9X0nMtn(f0Hw7yR9ZF(o|8gR0!;x` zOaW8Jzhy``1zZDP$79(Zs8GYdRImZKjK4VCHD+B}oyEINkc8y zg5{QfO&xNm2emZ0I{vaY8iuVj*H0m(RTQVj8;hx~VJqs8GY!6$(!N<~Wf3i$k}g0^ zBgdrP0kn4xoNPb&XYubeY)#7%ljt@8-d0Tpjrq+xMCKH%N{%wVf=TNpa@iv)Zx#|r z!A@uY4p@tk0xK?KuEj9`dVB;F>sH@MUjuZzqJXb;;v&xKX70O?Ix8Y6ar3Z7m8W%)&iNl{s_iuR zK)V{lJ}Zd~dN;=hdr<8;fUn)MWpN+rI3nEx;3;EtoEBTeUWnGOI*D>DNKtO!v$QOS zanZ0(TK%F9UnYJA{!|dl!k5>zqYOuov+Zt3_kp22ZpUkSRO{vre`nnX&Iu&e~P zW~fP=OFO25k_S-IzEKQSG&LQv$boScj=2P*4!Rf8anlcsxsfGo4ucr^=1}5{cM!U~ zA5v&elOttA%ykBCjIO&nEj2~G(ovc#sfpH`qS)-L)y|lS!Oy`3IMi=2nHz3Es#dB% z<1pyZ71>_4HghjS7y|@n3{D6d6lra?l2&Gj=U`^n(#h4i;}Fk5t;33GftEaY0GzSJ zOOUr!<&C!JFf1P6bRNKr=QK7~ovw~&i3@i`(O!LhEs@! zX&t|%K9>$$o+n% zFGI{P1k)oJPmtY^&Guz28P(}${tH^?>dXeynP{>a*dBm)WkK>Nfcz0a1IY9ZWHTvz ze*V+TR^&!eJd5J4b@^VYycdXL%Pe+3$97OjNL{`zcV8w;>-CvcqAHD=8|@r``B1WKMgGVY zQKel2unQHUz;ZT!r2mS6W%(mE-=Aw9ThW=#&E?La*4!Nboa^b#qBlMvT)FuVuk^r5 zh|tz8NAR2faK{S#$*$pKn11asQPc6Y)URu=lY zd873BBkB{6tT0(nvkOJzwNMBqvMyqiP6tAwH?zg%kF1t@EZDI^D{jDAYkD)N8P2o; z9`^ZV-I@O7>+&b?s*c!`PG+**cvjcabaaCdvc@$zfux(-5YCNu4?q_C5Pe`7R-!Mw z;}t<=1=AHd8jb_Cyc3T9dHMT%M`tECx`q}<2SVR3X0jB)42O*(Xe?0~0v?2bm2d$a zSSzLI3&5$rYxkd5;Q7aM^Iw);`||Q`jIhVi)A=J(@&rqWdqTh`9r&bxPdV@@ z0iSl@(*i!@z-I(})`8Co_?!cuTP-g20@MPEJ;$tdd_y<-@=Ea?qLuc=gqB$?W=@O0 zk`yzm&fRCam5wN-dnut~R*RX_;+Kr45C(Vc0ri6+Dwj@x%VHizv^FK#N(!rRn3k*V6`#HP`#*k(z zjP4h%H!K&^nCp#*OK8Ns50RRV3;lnj5}L%V4w10EC&ABBGExXpPDG455!Z;?O~PHm z00dl&tk*a;7G5Q6N5zkv;Ge+zKn=l)?@1S2;WhY47XF|!oh4Oq#}^Q%c$v+A2Je?C zvZ=_cMUNBO-Sh*of@s2iYPu3XOtNXMvXNHVHDVdZrs9hWigzW-zTP~(C7ZUTeMy70&ISWlQ0{)q%{1ojxAkJZ z=0Z)AbgR0-ZbJo!&*;`vz7i0JH!Za0m0`>D;!)W&bLjb|D+ zexo#=D_E@gbeWe}feb3*W-EeeEaGMnkzEmVILVZ8lVxNYGj58yjWo)&&2lk~xwb`I zq;Vn7E*s90jUi5l6Twy1En!m|)QQbYRD4kSLm9Y|Xez?8pgQgeMI1La%(&R9gxoUZ zn)Bh1-yi|Rp=?ma+-~J$og5oH9N`rr=^>{+$(w|<)~s~-53p#L*vkTC_(+O@kWw(G z3#sQEg<6E5k}#(vTn-0DBd8?IDangz5`s#?oRWMcO+rvfn3F|S^P^&J+F5h4yl16pSGM# zW6r0e`bd+Cz|VLm(p>CB&$PIp<&e&J)>h3luKHQ2+Q(CFi4*O~uu8Vm2)6n8N7#~l z^V=d$Q=A?&zr|Umgk8ug9%Iaat6l65St#U;K!DRsbXHY z7^aH(xy3M5%o`TNR58D_7^Z?bZxkb`Vmd5_sbab;hN)s!TMSdh^jZv4#jLd$rixi_ zF-#THZ!t^}-cP{RG7<1x1#r>9JPzSO3Qs*?b1WUodlJQ_0lQkyr3hi|Vi3RjI+y#?#Qc%m{KKGv zU}Sh;@^JU2Y?g;^y&Ez;-8kTR7;#MlEzebWFeqoSql9Q%Ko~(dV57a^|KaH;&OSk( zM-$-Na@q)CjA3ipgft2}YlB|Wa_ocsx!geKN^ZNp&SNY+%lc|2+n<|%1*ePi-=y*+ z?&q0VZvLwfj^i+9?0MJMfgu9?SmkL3=TuM_+|V8kf2E5JeFfMq_Ty(DGa!A!l|J#d z&hD;mm9T&+ut_=F-`$Dz9+whq z_TN$MUlk!>eL9f*w3DnEls*%bKI2NCxuJ8lt#|Q;iO=;T%(%*)4a7a`#AybVJr|Td z=SrXBis%LDpnez%XVW~Ylb*T4^^B#UC%&>;dc|VM`yx0(O2VFq0ExaLDHqPBJ0vFF z6Dv_}{v{woBEp`C042VR6z$goJZko;ki2S(LVl8ZegfqGmP3+*K*-?>U$KSc_%?_n zvddAQuZ`%Cm$0vm0C~UbkgSbB$l(iF8vzE5*N`qZ9L3^Z7(jATe;z0N@L`^zuFF|K zV(z0D)i?#?DV#bv2A(YkrNypI20h26lD;Jw_6ah7M61(HkgZMusYMUoWHWzW(X2(W zQ7wv$YHZO(VlRj9-M`E&^0WJ={z}}la0Hl(L**ixi9;cqh%d>vSbioemw<>Cm{V;5>MK6M7eog=xxQ$A zRs}Q7_&bqIFIaGb#x1;ZLPnEUTkv1bQ>ik$8o;rcoSi$CE?jAWqqi?3H(_!t?8>m| zM>OXZO!IRh6%|U(SIEL#^YgY)bH1>boVYc_AH8?fuDJ~w*sfugCX}-uH6c+jp`HdM z?#605P?R>IQrWKAnaE{U_M@HomMY+U8a*2xM3YC?62*p+|vm&=28I?;Emjpx|Pfb>y4tY}r*dy~d_*v+4CV9YC7L0CUG;M<6d20o$~_=t%DA5l@@6DkD0T=QlW>O^}SIV+!8kKExVllV4vuv<#4}DmkCJ~<4F|^)dk0*=Fkgi^+d05Hc>e16b>(`>B4=1 z!Y8a-_u3N!TyZ-;&ozrSA2K+cXK)Csx?VWHiR!fUX=iEfHqc*G+-ALjRaj^>c@ zLUPUN76U8BlPVZ$c_9X#wI;B;B3LicGqI~)affDdeBMkB!Cq^$v8%&*28ZAXJq!DU z&Q93HBrG$$-xDuEiDv{04r zl-Id3-&luGmj(6PF>V*B!^O9UBEt~&)*wLZeIz0x?1>2Igsr}WNd)FOuK@a*_ir?h zPS}aRDK?t06&X#~igaf+)9R;Mivm)M9u#XWie@hBh04l(2*p+|vm*CNWK=FuluJw`m#9dtP+7SjL9vy~tjK)|8I?;EAC^i};ii}2y zBHbvVXIt%=744rzMztr3+7lCLPgJD6P|4!?ITVJ$ny?Qy1Ss@{h={N!B0!=SBO=0{ zhyaPc5)l#hLLKpCAtbgS|HrL#a&xmK2b?WEqd%2v!o}4#Komo9zKpxjQxQQF(X2q7~ zhgRZ){yivDbng74sK<6Qv#bNx$*!9P)yXS3eCEAd4l18#EvT+387w68%`ft7=etxG zYWDMU@FGGtNslEJFe??j<|`nI^xwBBO9=nara!jn>o)zlP2aHTFEz#WvGASmuxXb~ zSKGALrfY4w-lqMU%13?0T$u2<+QTh}yQoMOgcjqbe1AD1`=4&CeI2L0a|k#U<2e-^ z>|6swj^hltk5yj4EgkjD$}t!gk-~}oq5xi-9!F{uSv#-|?p`8TetDc*V0gqkq0a^C zf=xXyuHaX{k6Ohuzd$vBVCw647YdDOjsp^aC5=dD!d_<&kn(IqN!U|*fRqnLl!QH{2S_;| zQ4;o)9w6mI5hYbxHB%&njDLp{Sk4BV)JtYC(Uv?oF*k3W;{t7y;6-UAZA)ZRW zd94&Ucll&gJz-xxf%kOgFk)ne=jVJlXs{vx=DR3d{No;=6H#pDqoC%EsC=7o1_|y@ z`FS2@LysYyub+Ue|21UO^?x6j*7{LrID~!ukAXU@hp?}QK-bgno%m4hmF{; zUw!?SSMQpC++2s(9_I~Sf5t1#S^NQfcx?A(9AVOOin_YZ!&@uh3O z{`miS;lP<&uekHKzW9m$+^63<^}rvT{*N86uiEo_-@5(>pZgbo{+F**U-?k(o5%j` z$G`N-@4owwu7B~KtG0jf?A2Fy=I_7Zrf+4wddPhAJ>U5^|M-vpd*x5o{Nc<0YoPx5 zyGQcRWPk8K-}=+J=7YC+T)59flmd>cUZOYGteS8%Er^(wfV%Y zO;Pb$5L)C@WP)6mqPq)ptdgHROynu{Eh$R-fzI40Dhfy~niZiN^plHJROmWVsGgqO z=v9!JLei1gnWIW{u$bk8@;i2 zS(?!6rq;D0(UqHemuXizkqc0I(V>?5Evv<}Y)9cmg<9$tsnVj_Yq=Pu7p-<@&p46d zK3RP2#yVR55Wbh=osN`Y*dh#G+o=$nbY53)s{1HxgQF&Q*7Og zp#0!<5=@Bc>B)L__P54a8b6ywZcK*^EcWB7K3DK7hkYJ3?H$1Kc(5wF9}~#vZa?l zmXVaaxr6(*B%RNuX4UbTwJt7L^f7*nA{7-ds_Gy@7yaiFN>NYE+z+^AcS zglI9GXvsMew)U0_N_3ePlt5FdH{ubKYC)Ps+AJnYa|HMlL((^v-Wek(P==(yby}K3 zY6w*djTCC6_@pnf`Jy=-T6RE(v*(jOO^naxWra$ zy<`d7E?L6%OO~+Xk|n?!_hihjOYjH2OM9s@_-3sc%9!_Ff*$gg^d$@7^Td}dgfA0c zvJgI6e91!imhmME;p@g`f#8!0v8i9KzNy_S%;sRm{6?EjeseMYM~)@j@gdWTRV)2m zvbxPhsMY3?KzRUNI{(g$xnqgV3?3MyoGpAT+U(1iJxi7oJ;W^obTni3Em=_V8@%4= z^0=$HT+-w%+RG=6@10T#U@tH?rFZzb9i3UyN}6jJs2MYb+N7>fVgG`(owt zXX6)>eOJcpUz+UHyZ5oSF!9|PbJx-(%G;w((amkdE?rSR478ZUr7P;6MqNzo;fxtw zTKnbQ)5SzC-2p^oi_=~nyY9g&4hw3FmDtk9t-k-dn9QYHApPpWg0kVTOYbmwZp4Xf z2{YIzE?uNN$>&72^b@Rl45uASbF1)~k_9DWU%d4Gf;2oGv!G1a^hm}WTAH@*wVB1F zUWlgYspU;(1O(R$nGxE_Y#CfFegNSY613977mcovcp*WnRpR2&^`aDAG`e1tqHi8u zA@)K>R=WL*M^}ivkl4~jWQzl|jM|H`>!Q&WBWvl}USK4=DB~_332(cY{#rZ|!U88V zrqCv~M2FMi!R)T7i3xi=yl1*luWz2fO7*6lJ0lj|T}@6*Y}!@49Mx>OkZN#Xv`B?q47M!pqzL)4r`chRc8TH}x<7?7x2I&;Q5I{_?-={ziVC**f%3 zpL_1u^?TmC=d&OC(?_oUFaP0h&z-yRuO1$ox&7?UD}Vcj$Nu_1&&(eF(>LDnqhH;= z=4=1znf!+aHV?h;j(#5Izx|az`}Za@dWaVcr|^H{eOc4ksn-oGr_O!&{|5a37byFS zpbRL}%Rj+ChsTD-_I~@Dzx%>ZzBl^sj%N1%;;GkhPG-#1yN}}~DLz!i1~p))gZegpu;uFo@#AqdU_O3GntwC6ke#;7ju>2SJy*I-0VQs|F7AM zD81g8`Lu@Wm$<`d!IN$u{y%ymYdYj3ZN%V{cO5wCH+P#cykl}V9(y>9+=w}dXQC#M z9>5D52ZiqWj-URmdJvh}6PmtPN*!bYn+zevHb|bA*o&tv_`Jjjp0D6LBmCz&kuffh zPw-U@zQ5vLSrG#BbVrdNeS=O7Q0Yq~t&(mRnoW4*LjT={2QXj*^9^$^c=w>T8T{+s zIl-j@>e8pLPD3gm)!-{4b+|(Oa*RF=#ixAu;>l@Hj0D`n;7lH;()Vom{6_lWjHEWc zZ^QBe_=-s5hc_1Eqdhj^iqW-)4~JCHiUUa5HvTh&$3b?(R>y$FbsqY=7xd0veD(t` z6^b2aQ+7@?Ot;8Bw*{S71aj_%96nm4wqd>7@HogO{Es+~I@f}hz08+qYDoFGNuuTA zbq&HUe3%Od@+Jp4`yqo*olHwF&Z52a0)0{m*D~n0G;Y9r4tCuFZ8jU+T;iX1LP{t{ zy^YV9@G+E{IfItCe-4T62W=hnHrDLyM@TJwp>4Qb?0*RI_?FR}ycm>NBJ{)dcHbm+ zPxHst4{d*&_y@J)3pO(t1^VpR!aVG^zyIg&gat6GuZE&WfBo--wtuhWWwyZo12_W+ AS^xk5 literal 0 HcmV?d00001 diff --git a/packages/AsyncEnumerator.4.0.2/lib/netstandard1.4/AsyncEnumerable.xml b/packages/AsyncEnumerator.4.0.2/lib/netstandard1.4/AsyncEnumerable.xml new file mode 100755 index 0000000..949167e --- /dev/null +++ b/packages/AsyncEnumerator.4.0.2/lib/netstandard1.4/AsyncEnumerable.xml @@ -0,0 +1,1812 @@ + + + + AsyncEnumerable + + + + + Base abstract class that implements . + Use concrete implementation or . + + + + + Returns pre-cached empty collection + + + + + Helps to enumerate items in a collection asynchronously + + + + IAsyncEnumerable<int> ProduceNumbers(int start, int end) + { + return new AsyncEnumerable<int>(async yield => { + for (int number = start; number <= end; number++) + await yield.ReturnAsync(number); + }); + } + + async Task ConsumeAsync() + { + var asyncEnumerableCollection = ProduceNumbers(start: 1, end: 10); + await asyncEnumerableCollection.ForEachAsync(async number => { + await Console.Out.WriteLineAsync(number); + }); + } + + + + + + A pre-cached empty collection + + + + + Constructor + + A function that enumerates items in a collection asynchronously + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Similar to , but allows you to pass a state object into the enumeration function, what can be + used for performance optimization, so don't have to create a delegate on the fly every single time you create the enumerator. + + Type of items returned by + Type of the state object + + + + Constructor + + A function that enumerates items in a collection asynchronously + A state object that is passed to the + + + + A user state that gets passed into the enumeration function. + + + + + Creates an enumerator that iterates through a collection asynchronously + + Returns a task with the created enumerator as result on completion + + + + Creates an enumerator that iterates through a collection asynchronously + + Returns a task with the created enumerator as result on completion + + + + This exception is thrown when you call + or when the enumerator is disposed before reaching the end of enumeration. + + + + + Base type for and + + + + + Returns an empty . Safe to use by multiple threads. + + + + + Helps to enumerate items in a collection asynchronously. + Provides exactly the same functionality as , + but allows to pass a user state object in the enumeration function, + what can be used for performance optimization. + + + + + Constructor + + A function that enumerates items in a collection asynchronously + Any state object that is passed to the + Optional action that gets invoked on Dispose() + + + + Finalizer + + + + + A user state that gets passed into the enumeration function. + + + + + Gets the element in the collection at the current position of the enumerator + + + + + Tells if enumeration is complete. Returns True only after MoveNextAsync returns False. + + + + + Advances the enumerator to the next element of the collection asynchronously + + Returns a Task that does transition to the next element. The result of the task is True if the enumerator was successfully advanced to the next element, or False if the enumerator has passed the end of the collection. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + True if called from Dispose() method, otherwise False - called by GC + + + + Helps to enumerate items in a collection asynchronously + + + + + An empty . Safe to use by multiple threads. + + + + + The asynchronous version of the 'yield' construction + + + + + Gets the cancellation token that was passed to the method + + + + + Yields an item asynchronously (similar to 'yield return' statement) + + The item of the collection to yield + Returns a Task which tells if when you can continue to yield the next item + + + + Stops iterating items in the collection (similar to 'yield break' statement) + + Always throws this exception to stop the enumeration task + + + + Constructor + + A function that enumerates items in a collection asynchronously + Optional action that gets invoked on Dispose() + + + + Internal implementation details + + + + + Converts generic IEnumerable to IAsyncEnumerable + + + + + Creates adapter for + + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Converts generic IEnumerable to IAsyncEnumerable + + + + + Creates adapter for + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Creates adapter for the enumerator of + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Creates adapter for + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Extension methods for for backward compatibility with version 1 of this libraray. + Not recommended to use. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Creates an enumerator that iterates through a collection synchronously. + This method is marked as [Obsolete] to discourage you from using this synchronous version of + the method instead of , + what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Advances the enumerator to the next element of the collection synchronously. + This method is marked as [Obsolete] to discourage you from using this synchronous version of + the method instead of , + what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Creates an enumerator that iterates through a collection synchronously. + This method is marked as [Obsolete] to discourage you from using this synchronous version of + the method instead of , + what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Class to provide access to static method. + + + + + Stops ForEachAsync iteration (similar to 'break' statement) + + Always throws this exception to stop the ForEachAsync iteration + + + + This exception is thrown when you call . + + + + + Enables asynchronous 'foreach' enumeration over an IAsyncEnumerable + + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Extension methods for interface + + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + The message of an exception which is thrown when the source collection is empty. + The message of an exception which is thrown when the source collection has more than one element. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + The message of an exception which is thrown when the source collection is has no element matching the criteria. + The message of an exception which is thrown when the source collection has more than one element matching the criteria. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + A that can halt enumeration of . + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + A that can halt enumeration of + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + An optional custom exception message for the case when the is empty + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + An optional custom exception message for the case when the is empty + A that can halt enumeration of + + + + Returns the first element in the , or a default value if no element is found. + + The type of the elements of + An to return an element from. + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition, or a default value if no element is found. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + A that can halt enumeration of + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element. + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the value in the IAsyncEnumerable returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the intermediate elements collected by . + The type of the elements of the resulting sequence by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element of the input sequence. + A transform function to apply to each element of the intermediate sequence. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the value in the IAsyncEnumerable returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the intermediate elements collected by . + The type of the elements of the resulting sequence by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element of the input sequence. + A transform function to apply to each element of the intermediate sequence. + + + + Returns a specified number of contiguous elements from the start of a sequence. + + The type of the elements of + A sequence to return elements from. + The number of elements to return. + + + + Returns elements from a sequence as long as a specified condition is true. + + The type of the elements of + A sequence to return elements from. + A function to test each element for a condition. + + + + Creates a list of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + A cancellation token to cancel the async operation + + + + Creates an array of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + A cancellation token to cancel the async operation + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + An to create a from. + A function to extract a key from each element. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + An to create a from. + A function to extract a key from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + An to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + An to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function. + + The type of the elements of . + The type of the key returned by . + The to create a from. + A function to extract a key from each element. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function and key comparer. + + The type of the elements of . + The type of the key returned by . + The to create a from. + A function to extract a key from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + The to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function, a comparer and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + The to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + An to return elements from. + + The type of the elements of + An to return elements from. + The number of elements to skip before returning the remaining elements. + + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements of + An to return elements from. + A function to test each element for a condition. + + + + Filters a sequence of values based on a predicate. + + The type of the elements of + An to filter. + A function to test each element for a condition. + + + + Projects each element of a sequence into a new form. + + The type of the elements of + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + + + + Casts the elements of an to the specified type. + + The type to cast the elements of to. + An that contains the elements to be cast to type . + + + + Filters the elements of an based on a specified type. + + The type to filter the elements of the sequence on. + The whose elements to filter. + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + The type of a batch of elements. + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + A function that creates a new batch with optional suggested capacity. + An action that adds an element to a batch. + + + + Produces the set union of two sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + An whose elements form the first set for the union. + An whose elements form the second set for the union. + + + + Produces the set union of multiple sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + A set of whose elements form the union. + + + + Creates a new sequence based on input one plus an extra element at the end. + + The type of the elements of . + An to return the single element of. + An extra element to be returned on enumeration. + + + + Creates a new sequence based on input one plus an extra element in the beginning. + + The type of the elements of . + An to return the single element of. + An extra element to be returned on enumeration. + + + + Concatenates two sequences. + + The type of the elements of the input sequences. + The first sequence to concatenate. + The sequence to concatenate to the first sequence. + + + + Returns distinct elements from a sequence by using the default equality comparer to compare values. + + The type of the elements of . + The sequence to remove duplicate elements from. + + + + Returns distinct elements from a sequence by using a specified to compare values. + + The type of the elements of . + The sequence to remove duplicate elements from. + An to compare values. + + + + Applies an accumulator function over a sequence. + + The type of the elements of . + An to aggregate over. + An accumulator function to be invoked on each element. + A cancellation token to cancel the async operation. + + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value. + + The type of the elements of . + The type of the accumulator value. + An to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A cancellation token to cancel the async operation. + + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value. + + The type of the elements of . + The type of the accumulator value. + The type of the resulting value. + An to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + A cancellation token to cancel the async operation. + + + + Determines whether all elements of a sequence satisfy a condition. + + An that contains the elements to apply the predicate to. + A function to test each element for a condition. + A cancellation token to cancel the async operation. + The type of the elements of . + true if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, false. + or is null. + + + + Determines whether any element of a sequence exists or satisfies a condition. + + An that contains the elements to apply the predicate to. + A function to test each element for a condition. + A cancellation token to cancel the async operation. + The type of the elements of . + true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. + or is null. + + + + Extension methods for interface + + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + The message of an exception which is thrown when the source collection is empty. + The message of an exception which is thrown when the source collection has more than one element. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + The message of an exception which is thrown when the source collection is has no element matching the criteria. + The message of an exception which is thrown when the source collection has more than one element matching the criteria. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + Flag to call the on input when this operation is complete + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + Flag to call the on input when this operation is complete + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + An optional custom exception message for the case when the is empty + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + An optional custom exception message for the case when the is empty + Flag to call the on input when this operation is complete + + + + Returns the first element in the , or a default value if no element is found. + + The type of the elements of + An to return an element from. + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition, or a default value if no element is found. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + Flag to call the on input when this operation is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element. + Flag to call the on input when enumeration is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + Flag to call the on input when enumeration is complete + + + + Returns a specified number of contiguous elements from the start of a sequence. + + The type of the elements of + A sequence to return elements from. + The number of elements to return. + Flag to call the on input when enumeration is complete + + + + Returns elements from a sequence as long as a specified condition is true. + + The type of the elements of + A sequence to return elements from. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Creates a list of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + Flag to call the on input when this operation is complete + + + + Creates an array of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + Flag to call the on input when this operation is complete + + + + An to return elements from. + + The type of the elements of + An to return elements from. + The number of elements to skip before returning the remaining elements. + Flag to call the on input when enumeration is complete + + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements of + An to return elements from. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Filters a sequence of values based on a predicate. + + The type of the elements of + An to filter. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + Flag to call the on input when enumeration is complete + + + + Casts the elements of an to the specified type. + + The type to cast the elements of to. + An that contains the elements to be cast to type . + Flag to call the on input when enumeration is complete + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + Flag to call the on input when enumeration is complete + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + The type of a batch of elements. + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + A function that creates a new batch with optional suggested capacity. + An action that adds an element to a batch. + Flag to call the on input when enumeration is complete + + + + Produces the set union of two sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + An whose elements form the first set for the union. + An whose elements form the second set for the union. + Flag to call the on input and when enumeration is complete. + + + + Produces the set union of multiple sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + A set of whose elements form the union. + Flag to call the on all input when enumeration is complete. + + + + Used in ParallelForEachAsync<T> extension method + + + + + Constructor + + + + + Extensions methods for IEnumerable and IAsyncEnumerable to do parallel for-each loop in async-await manner + + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Exposes an asynchronous enumerator, which supports a simple iteration over a non-generic collection + + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Exposes the asynchronous enumerator, which supports a simple iteration over a collection of typed items + + The type of items in the collection + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Supports a simple asynchronous iteration over a non-generic collection + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element of the collection asynchronously + + Returns a Task that does transition to the next element. The result of the task is True if the enumerator was successfully advanced to the next element, or False if the enumerator has passed the end of the collection. + + + + Supports a simple asynchronous iteration over a collection of typed items + + The type of items in the collection + + + + Gets the element in the collection at the current position of the enumerator. + + + + + Internal base type for and + + + + + Utility methods for + + + + + Forcibly disables re-use of instances in the method. + This is just a safety switch in case when something goes wrong with re-using instances of . + + + + + Resets a to initial incomplete state. + This method by default re-uses the same instance of the by re-setting internal state of its using reflection. + If such feature is not available or explicitly disable with the method, it just returns a new instance of a . + + Type of the result value + Target to be reset or recreated. It's safe to pass null. + Optional state object that you pass into constructor. + + + diff --git a/packages/AsyncEnumerator.4.0.2/lib/netstandard2.0/AsyncEnumerable.dll b/packages/AsyncEnumerator.4.0.2/lib/netstandard2.0/AsyncEnumerable.dll new file mode 100755 index 0000000000000000000000000000000000000000..5ef4fcac9cea1de52849ac315c4c45f236d03e9b GIT binary patch literal 139776 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 literal 0 HcmV?d00001 diff --git a/packages/AsyncEnumerator.4.0.2/lib/netstandard2.0/AsyncEnumerable.xml b/packages/AsyncEnumerator.4.0.2/lib/netstandard2.0/AsyncEnumerable.xml new file mode 100755 index 0000000..d6838e4 --- /dev/null +++ b/packages/AsyncEnumerator.4.0.2/lib/netstandard2.0/AsyncEnumerable.xml @@ -0,0 +1,1675 @@ + + + + AsyncEnumerable + + + + + Base abstract class that implements . + Use concrete implementation or . + + + + + Returns pre-cached empty collection + + + + + Helps to enumerate items in a collection asynchronously + + + + IAsyncEnumerable<int> ProduceNumbers(int start, int end) + { + return new AsyncEnumerable<int>(async yield => { + for (int number = start; number <= end; number++) + await yield.ReturnAsync(number); + }); + } + + async Task ConsumeAsync() + { + var asyncEnumerableCollection = ProduceNumbers(start: 1, end: 10); + await asyncEnumerableCollection.ForEachAsync(async number => { + await Console.Out.WriteLineAsync(number); + }); + } + + + + + + A pre-cached empty collection + + + + + Constructor + + A function that enumerates items in a collection asynchronously + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Similar to , but allows you to pass a state object into the enumeration function, what can be + used for performance optimization, so don't have to create a delegate on the fly every single time you create the enumerator. + + Type of items returned by + Type of the state object + + + + Constructor + + A function that enumerates items in a collection asynchronously + A state object that is passed to the + + + + A user state that gets passed into the enumeration function. + + + + + Creates an enumerator that iterates through a collection asynchronously + + Returns a task with the created enumerator as result on completion + + + + Creates an enumerator that iterates through a collection asynchronously + + Returns a task with the created enumerator as result on completion + + + + This exception is thrown when you call + or when the enumerator is disposed before reaching the end of enumeration. + + + + + Base type for and + + + + + Returns an empty . Safe to use by multiple threads. + + + + + Helps to enumerate items in a collection asynchronously. + Provides exactly the same functionality as , + but allows to pass a user state object in the enumeration function, + what can be used for performance optimization. + + + + + Constructor + + A function that enumerates items in a collection asynchronously + Any state object that is passed to the + Optional action that gets invoked on Dispose() + + + + Finalizer + + + + + A user state that gets passed into the enumeration function. + + + + + Gets the element in the collection at the current position of the enumerator + + + + + Tells if enumeration is complete. Returns True only after MoveNextAsync returns False. + + + + + Advances the enumerator to the next element of the collection asynchronously + + Returns a Task that does transition to the next element. The result of the task is True if the enumerator was successfully advanced to the next element, or False if the enumerator has passed the end of the collection. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + True if called from Dispose() method, otherwise False - called by GC + + + + Helps to enumerate items in a collection asynchronously + + + + + An empty . Safe to use by multiple threads. + + + + + The asynchronous version of the 'yield' construction + + + + + Gets the cancellation token that was passed to the method + + + + + Yields an item asynchronously (similar to 'yield return' statement) + + The item of the collection to yield + Returns a Task which tells if when you can continue to yield the next item + + + + Stops iterating items in the collection (similar to 'yield break' statement) + + Always throws this exception to stop the enumeration task + + + + Constructor + + A function that enumerates items in a collection asynchronously + Optional action that gets invoked on Dispose() + + + + Internal implementation details + + + + + Converts generic IEnumerable to IAsyncEnumerable + + + + + Creates adapter for + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Creates adapter for the enumerator of + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Creates adapter for + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Extension methods for for backward compatibility with version 1 of this libraray. + Not recommended to use. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Creates an enumerator that iterates through a collection synchronously. + This method is marked as [Obsolete] to discourage you from using this synchronous version of + the method instead of , + what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Class to provide access to static method. + + + + + Stops ForEachAsync iteration (similar to 'break' statement) + + Always throws this exception to stop the ForEachAsync iteration + + + + This exception is thrown when you call . + + + + + Enables asynchronous 'foreach' enumeration over an IAsyncEnumerable + + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Extension methods for interface + + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + The message of an exception which is thrown when the source collection is empty. + The message of an exception which is thrown when the source collection has more than one element. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + The message of an exception which is thrown when the source collection is has no element matching the criteria. + The message of an exception which is thrown when the source collection has more than one element matching the criteria. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + A that can halt enumeration of . + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + A that can halt enumeration of + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + An optional custom exception message for the case when the is empty + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + An optional custom exception message for the case when the is empty + A that can halt enumeration of + + + + Returns the first element in the , or a default value if no element is found. + + The type of the elements of + An to return an element from. + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition, or a default value if no element is found. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + A that can halt enumeration of + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element. + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the value in the IAsyncEnumerable returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the intermediate elements collected by . + The type of the elements of the resulting sequence by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element of the input sequence. + A transform function to apply to each element of the intermediate sequence. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the value in the IAsyncEnumerable returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the intermediate elements collected by . + The type of the elements of the resulting sequence by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element of the input sequence. + A transform function to apply to each element of the intermediate sequence. + + + + Returns a specified number of contiguous elements from the start of a sequence. + + The type of the elements of + A sequence to return elements from. + The number of elements to return. + + + + Returns elements from a sequence as long as a specified condition is true. + + The type of the elements of + A sequence to return elements from. + A function to test each element for a condition. + + + + Creates a list of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + A cancellation token to cancel the async operation + + + + Creates an array of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + A cancellation token to cancel the async operation + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + An to create a from. + A function to extract a key from each element. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + An to create a from. + A function to extract a key from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + An to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + An to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function. + + The type of the elements of . + The type of the key returned by . + The to create a from. + A function to extract a key from each element. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function and key comparer. + + The type of the elements of . + The type of the key returned by . + The to create a from. + A function to extract a key from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + The to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function, a comparer and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + The to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + An to return elements from. + + The type of the elements of + An to return elements from. + The number of elements to skip before returning the remaining elements. + + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements of + An to return elements from. + A function to test each element for a condition. + + + + Filters a sequence of values based on a predicate. + + The type of the elements of + An to filter. + A function to test each element for a condition. + + + + Projects each element of a sequence into a new form. + + The type of the elements of + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + + + + Casts the elements of an to the specified type. + + The type to cast the elements of to. + An that contains the elements to be cast to type . + + + + Filters the elements of an based on a specified type. + + The type to filter the elements of the sequence on. + The whose elements to filter. + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + The type of a batch of elements. + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + A function that creates a new batch with optional suggested capacity. + An action that adds an element to a batch. + + + + Produces the set union of two sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + An whose elements form the first set for the union. + An whose elements form the second set for the union. + + + + Produces the set union of multiple sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + A set of whose elements form the union. + + + + Creates a new sequence based on input one plus an extra element at the end. + + The type of the elements of . + An to return the single element of. + An extra element to be returned on enumeration. + + + + Creates a new sequence based on input one plus an extra element in the beginning. + + The type of the elements of . + An to return the single element of. + An extra element to be returned on enumeration. + + + + Concatenates two sequences. + + The type of the elements of the input sequences. + The first sequence to concatenate. + The sequence to concatenate to the first sequence. + + + + Returns distinct elements from a sequence by using the default equality comparer to compare values. + + The type of the elements of . + The sequence to remove duplicate elements from. + + + + Returns distinct elements from a sequence by using a specified to compare values. + + The type of the elements of . + The sequence to remove duplicate elements from. + An to compare values. + + + + Applies an accumulator function over a sequence. + + The type of the elements of . + An to aggregate over. + An accumulator function to be invoked on each element. + A cancellation token to cancel the async operation. + + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value. + + The type of the elements of . + The type of the accumulator value. + An to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A cancellation token to cancel the async operation. + + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value. + + The type of the elements of . + The type of the accumulator value. + The type of the resulting value. + An to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + A cancellation token to cancel the async operation. + + + + Determines whether all elements of a sequence satisfy a condition. + + An that contains the elements to apply the predicate to. + A function to test each element for a condition. + A cancellation token to cancel the async operation. + The type of the elements of . + true if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, false. + or is null. + + + + Determines whether any element of a sequence exists or satisfies a condition. + + An that contains the elements to apply the predicate to. + A function to test each element for a condition. + A cancellation token to cancel the async operation. + The type of the elements of . + true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. + or is null. + + + + Extension methods for interface + + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + The message of an exception which is thrown when the source collection is empty. + The message of an exception which is thrown when the source collection has more than one element. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + The message of an exception which is thrown when the source collection is has no element matching the criteria. + The message of an exception which is thrown when the source collection has more than one element matching the criteria. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + Flag to call the on input when this operation is complete + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + Flag to call the on input when this operation is complete + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + An optional custom exception message for the case when the is empty + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + An optional custom exception message for the case when the is empty + Flag to call the on input when this operation is complete + + + + Returns the first element in the , or a default value if no element is found. + + The type of the elements of + An to return an element from. + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition, or a default value if no element is found. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + Flag to call the on input when this operation is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element. + Flag to call the on input when enumeration is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + Flag to call the on input when enumeration is complete + + + + Returns a specified number of contiguous elements from the start of a sequence. + + The type of the elements of + A sequence to return elements from. + The number of elements to return. + Flag to call the on input when enumeration is complete + + + + Returns elements from a sequence as long as a specified condition is true. + + The type of the elements of + A sequence to return elements from. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Creates a list of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + Flag to call the on input when this operation is complete + + + + Creates an array of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + Flag to call the on input when this operation is complete + + + + An to return elements from. + + The type of the elements of + An to return elements from. + The number of elements to skip before returning the remaining elements. + Flag to call the on input when enumeration is complete + + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements of + An to return elements from. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Filters a sequence of values based on a predicate. + + The type of the elements of + An to filter. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + Flag to call the on input when enumeration is complete + + + + Casts the elements of an to the specified type. + + The type to cast the elements of to. + An that contains the elements to be cast to type . + Flag to call the on input when enumeration is complete + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + Flag to call the on input when enumeration is complete + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + The type of a batch of elements. + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + A function that creates a new batch with optional suggested capacity. + An action that adds an element to a batch. + Flag to call the on input when enumeration is complete + + + + Produces the set union of two sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + An whose elements form the first set for the union. + An whose elements form the second set for the union. + Flag to call the on input and when enumeration is complete. + + + + Produces the set union of multiple sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + A set of whose elements form the union. + Flag to call the on all input when enumeration is complete. + + + + Used in ParallelForEachAsync<T> extension method + + + + + Constructor + + + + + Extensions methods for IEnumerable and IAsyncEnumerable to do parallel for-each loop in async-await manner + + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Exposes an asynchronous enumerator, which supports a simple iteration over a non-generic collection + + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Supports a simple asynchronous iteration over a non-generic collection + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element of the collection asynchronously + + Returns a Task that does transition to the next element. The result of the task is True if the enumerator was successfully advanced to the next element, or False if the enumerator has passed the end of the collection. + + + + Internal base type for and + + + + + Utility methods for + + + + + Forcibly disables re-use of instances in the method. + This is just a safety switch in case when something goes wrong with re-using instances of . + + + + + Resets a to initial incomplete state. + This method by default re-uses the same instance of the by re-setting internal state of its using reflection. + If such feature is not available or explicitly disable with the method, it just returns a new instance of a . + + Type of the result value + Target to be reset or recreated. It's safe to pass null. + Optional state object that you pass into constructor. + + + diff --git a/packages/AsyncEnumerator.4.0.2/lib/netstandard2.1/AsyncEnumerable.dll b/packages/AsyncEnumerator.4.0.2/lib/netstandard2.1/AsyncEnumerable.dll new file mode 100755 index 0000000000000000000000000000000000000000..7fff0120bd1f780ce297c2975366b5302a041ffe GIT binary patch literal 139776 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 V3v|c$`U1{*@!0!^KmY$M@IQESDu@68 literal 0 HcmV?d00001 diff --git a/packages/AsyncEnumerator.4.0.2/lib/netstandard2.1/AsyncEnumerable.xml b/packages/AsyncEnumerator.4.0.2/lib/netstandard2.1/AsyncEnumerable.xml new file mode 100755 index 0000000..d6838e4 --- /dev/null +++ b/packages/AsyncEnumerator.4.0.2/lib/netstandard2.1/AsyncEnumerable.xml @@ -0,0 +1,1675 @@ + + + + AsyncEnumerable + + + + + Base abstract class that implements . + Use concrete implementation or . + + + + + Returns pre-cached empty collection + + + + + Helps to enumerate items in a collection asynchronously + + + + IAsyncEnumerable<int> ProduceNumbers(int start, int end) + { + return new AsyncEnumerable<int>(async yield => { + for (int number = start; number <= end; number++) + await yield.ReturnAsync(number); + }); + } + + async Task ConsumeAsync() + { + var asyncEnumerableCollection = ProduceNumbers(start: 1, end: 10); + await asyncEnumerableCollection.ForEachAsync(async number => { + await Console.Out.WriteLineAsync(number); + }); + } + + + + + + A pre-cached empty collection + + + + + Constructor + + A function that enumerates items in a collection asynchronously + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Similar to , but allows you to pass a state object into the enumeration function, what can be + used for performance optimization, so don't have to create a delegate on the fly every single time you create the enumerator. + + Type of items returned by + Type of the state object + + + + Constructor + + A function that enumerates items in a collection asynchronously + A state object that is passed to the + + + + A user state that gets passed into the enumeration function. + + + + + Creates an enumerator that iterates through a collection asynchronously + + Returns a task with the created enumerator as result on completion + + + + Creates an enumerator that iterates through a collection asynchronously + + Returns a task with the created enumerator as result on completion + + + + This exception is thrown when you call + or when the enumerator is disposed before reaching the end of enumeration. + + + + + Base type for and + + + + + Returns an empty . Safe to use by multiple threads. + + + + + Helps to enumerate items in a collection asynchronously. + Provides exactly the same functionality as , + but allows to pass a user state object in the enumeration function, + what can be used for performance optimization. + + + + + Constructor + + A function that enumerates items in a collection asynchronously + Any state object that is passed to the + Optional action that gets invoked on Dispose() + + + + Finalizer + + + + + A user state that gets passed into the enumeration function. + + + + + Gets the element in the collection at the current position of the enumerator + + + + + Tells if enumeration is complete. Returns True only after MoveNextAsync returns False. + + + + + Advances the enumerator to the next element of the collection asynchronously + + Returns a Task that does transition to the next element. The result of the task is True if the enumerator was successfully advanced to the next element, or False if the enumerator has passed the end of the collection. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + True if called from Dispose() method, otherwise False - called by GC + + + + Helps to enumerate items in a collection asynchronously + + + + + An empty . Safe to use by multiple threads. + + + + + The asynchronous version of the 'yield' construction + + + + + Gets the cancellation token that was passed to the method + + + + + Yields an item asynchronously (similar to 'yield return' statement) + + The item of the collection to yield + Returns a Task which tells if when you can continue to yield the next item + + + + Stops iterating items in the collection (similar to 'yield break' statement) + + Always throws this exception to stop the enumeration task + + + + Constructor + + A function that enumerates items in a collection asynchronously + Optional action that gets invoked on Dispose() + + + + Internal implementation details + + + + + Converts generic IEnumerable to IAsyncEnumerable + + + + + Creates adapter for + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Creates adapter for the enumerator of + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Creates adapter for + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Extension methods for for backward compatibility with version 1 of this libraray. + Not recommended to use. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Creates an enumerator that iterates through a collection synchronously. + This method is marked as [Obsolete] to discourage you from using this synchronous version of + the method instead of , + what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Class to provide access to static method. + + + + + Stops ForEachAsync iteration (similar to 'break' statement) + + Always throws this exception to stop the ForEachAsync iteration + + + + This exception is thrown when you call . + + + + + Enables asynchronous 'foreach' enumeration over an IAsyncEnumerable + + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Extension methods for interface + + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + The message of an exception which is thrown when the source collection is empty. + The message of an exception which is thrown when the source collection has more than one element. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + The message of an exception which is thrown when the source collection is has no element matching the criteria. + The message of an exception which is thrown when the source collection has more than one element matching the criteria. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + A that can halt enumeration of . + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + A that can halt enumeration of + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + An optional custom exception message for the case when the is empty + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + An optional custom exception message for the case when the is empty + A that can halt enumeration of + + + + Returns the first element in the , or a default value if no element is found. + + The type of the elements of + An to return an element from. + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition, or a default value if no element is found. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + A that can halt enumeration of + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element. + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the value in the IAsyncEnumerable returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the intermediate elements collected by . + The type of the elements of the resulting sequence by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element of the input sequence. + A transform function to apply to each element of the intermediate sequence. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the value in the IAsyncEnumerable returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the intermediate elements collected by . + The type of the elements of the resulting sequence by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element of the input sequence. + A transform function to apply to each element of the intermediate sequence. + + + + Returns a specified number of contiguous elements from the start of a sequence. + + The type of the elements of + A sequence to return elements from. + The number of elements to return. + + + + Returns elements from a sequence as long as a specified condition is true. + + The type of the elements of + A sequence to return elements from. + A function to test each element for a condition. + + + + Creates a list of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + A cancellation token to cancel the async operation + + + + Creates an array of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + A cancellation token to cancel the async operation + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + An to create a from. + A function to extract a key from each element. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + An to create a from. + A function to extract a key from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + An to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + An to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function. + + The type of the elements of . + The type of the key returned by . + The to create a from. + A function to extract a key from each element. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function and key comparer. + + The type of the elements of . + The type of the key returned by . + The to create a from. + A function to extract a key from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + The to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function, a comparer and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + The to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + An to return elements from. + + The type of the elements of + An to return elements from. + The number of elements to skip before returning the remaining elements. + + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements of + An to return elements from. + A function to test each element for a condition. + + + + Filters a sequence of values based on a predicate. + + The type of the elements of + An to filter. + A function to test each element for a condition. + + + + Projects each element of a sequence into a new form. + + The type of the elements of + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + + + + Casts the elements of an to the specified type. + + The type to cast the elements of to. + An that contains the elements to be cast to type . + + + + Filters the elements of an based on a specified type. + + The type to filter the elements of the sequence on. + The whose elements to filter. + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + The type of a batch of elements. + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + A function that creates a new batch with optional suggested capacity. + An action that adds an element to a batch. + + + + Produces the set union of two sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + An whose elements form the first set for the union. + An whose elements form the second set for the union. + + + + Produces the set union of multiple sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + A set of whose elements form the union. + + + + Creates a new sequence based on input one plus an extra element at the end. + + The type of the elements of . + An to return the single element of. + An extra element to be returned on enumeration. + + + + Creates a new sequence based on input one plus an extra element in the beginning. + + The type of the elements of . + An to return the single element of. + An extra element to be returned on enumeration. + + + + Concatenates two sequences. + + The type of the elements of the input sequences. + The first sequence to concatenate. + The sequence to concatenate to the first sequence. + + + + Returns distinct elements from a sequence by using the default equality comparer to compare values. + + The type of the elements of . + The sequence to remove duplicate elements from. + + + + Returns distinct elements from a sequence by using a specified to compare values. + + The type of the elements of . + The sequence to remove duplicate elements from. + An to compare values. + + + + Applies an accumulator function over a sequence. + + The type of the elements of . + An to aggregate over. + An accumulator function to be invoked on each element. + A cancellation token to cancel the async operation. + + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value. + + The type of the elements of . + The type of the accumulator value. + An to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A cancellation token to cancel the async operation. + + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value. + + The type of the elements of . + The type of the accumulator value. + The type of the resulting value. + An to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A function to transform the final accumulator value into the result value. + A cancellation token to cancel the async operation. + + + + Determines whether all elements of a sequence satisfy a condition. + + An that contains the elements to apply the predicate to. + A function to test each element for a condition. + A cancellation token to cancel the async operation. + The type of the elements of . + true if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, false. + or is null. + + + + Determines whether any element of a sequence exists or satisfies a condition. + + An that contains the elements to apply the predicate to. + A function to test each element for a condition. + A cancellation token to cancel the async operation. + The type of the elements of . + true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. + or is null. + + + + Extension methods for interface + + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + The message of an exception which is thrown when the source collection is empty. + The message of an exception which is thrown when the source collection has more than one element. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + The message of an exception which is thrown when the source collection is has no element matching the criteria. + The message of an exception which is thrown when the source collection has more than one element matching the criteria. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + Flag to call the on input when this operation is complete + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + Flag to call the on input when this operation is complete + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + An optional custom exception message for the case when the is empty + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + An optional custom exception message for the case when the is empty + Flag to call the on input when this operation is complete + + + + Returns the first element in the , or a default value if no element is found. + + The type of the elements of + An to return an element from. + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition, or a default value if no element is found. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + Flag to call the on input when this operation is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element. + Flag to call the on input when enumeration is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element; the second parameter of the function represents the index of the source element. + Flag to call the on input when enumeration is complete + + + + Returns a specified number of contiguous elements from the start of a sequence. + + The type of the elements of + A sequence to return elements from. + The number of elements to return. + Flag to call the on input when enumeration is complete + + + + Returns elements from a sequence as long as a specified condition is true. + + The type of the elements of + A sequence to return elements from. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Creates a list of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + Flag to call the on input when this operation is complete + + + + Creates an array of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + Flag to call the on input when this operation is complete + + + + An to return elements from. + + The type of the elements of + An to return elements from. + The number of elements to skip before returning the remaining elements. + Flag to call the on input when enumeration is complete + + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements of + An to return elements from. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Filters a sequence of values based on a predicate. + + The type of the elements of + An to filter. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + Flag to call the on input when enumeration is complete + + + + Casts the elements of an to the specified type. + + The type to cast the elements of to. + An that contains the elements to be cast to type . + Flag to call the on input when enumeration is complete + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + Flag to call the on input when enumeration is complete + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + The type of a batch of elements. + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + A function that creates a new batch with optional suggested capacity. + An action that adds an element to a batch. + Flag to call the on input when enumeration is complete + + + + Produces the set union of two sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + An whose elements form the first set for the union. + An whose elements form the second set for the union. + Flag to call the on input and when enumeration is complete. + + + + Produces the set union of multiple sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + A set of whose elements form the union. + Flag to call the on all input when enumeration is complete. + + + + Used in ParallelForEachAsync<T> extension method + + + + + Constructor + + + + + Extensions methods for IEnumerable and IAsyncEnumerable to do parallel for-each loop in async-await manner + + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Exposes an asynchronous enumerator, which supports a simple iteration over a non-generic collection + + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Supports a simple asynchronous iteration over a non-generic collection + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element of the collection asynchronously + + Returns a Task that does transition to the next element. The result of the task is True if the enumerator was successfully advanced to the next element, or False if the enumerator has passed the end of the collection. + + + + Internal base type for and + + + + + Utility methods for + + + + + Forcibly disables re-use of instances in the method. + This is just a safety switch in case when something goes wrong with re-using instances of . + + + + + Resets a to initial incomplete state. + This method by default re-uses the same instance of the by re-setting internal state of its using reflection. + If such feature is not available or explicitly disable with the method, it just returns a new instance of a . + + Type of the result value + Target to be reset or recreated. It's safe to pass null. + Optional state object that you pass into constructor. + + + diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/.signature.p7s b/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/.signature.p7s new file mode 100755 index 0000000000000000000000000000000000000000..c73d5942eb2dcc12351d086775be4d7cda0d02a0 GIT binary patch literal 18702 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

RAih=x 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/LICENSE.TXT b/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/LICENSE.TXT new file mode 100755 index 0000000..984713a --- /dev/null +++ b/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/LICENSE.TXT @@ -0,0 +1,23 @@ +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/THIRD-PARTY-NOTICES.TXT b/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/THIRD-PARTY-NOTICES.TXT new file mode 100755 index 0000000..14c806c --- /dev/null +++ b/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/THIRD-PARTY-NOTICES.TXT @@ -0,0 +1,980 @@ +.NET Runtime uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Runtime software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for ASP.NET +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. +Licensed under the Apache License, Version 2.0. + +Available at +https://github.com/dotnet/aspnetcore/blob/main/LICENSE.txt + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + + +License notice for Unicode data +------------------------------- + +https://www.unicode.org/license.html + +Copyright © 1991-2020 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in https://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for Zlib +----------------------- + +https://github.com/madler/zlib +http://zlib.net/zlib_license.html + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +License notice for Json.NET +------------------------------- + +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md + +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized base64 encoding / decoding +-------------------------------------------------------- + +Copyright (c) 2005-2007, Nick Galbreath +Copyright (c) 2013-2017, Alfred Klomp +Copyright (c) 2015-2017, Wojciech Mula +Copyright (c) 2016-2017, Matthieu Darbois +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for RFC 3492 +--------------------------- + +The punycode implementation is based on the sample code in RFC 3492 + +Copyright (C) The Internet Society (2003). All Rights Reserved. + +This document and translations of it may be copied and furnished to +others, and derivative works that comment on or otherwise explain it +or assist in its implementation may be prepared, copied, published +and distributed, in whole or in part, without restriction of any +kind, provided that the above copyright notice and this paragraph are +included on all such copies and derivative works. However, this +document itself may not be modified in any way, such as by removing +the copyright notice or references to the Internet Society or other +Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for +copyrights defined in the Internet Standards process must be +followed, or as required to translate it into languages other than +English. + +The limited permissions granted above are perpetual and will not be +revoked by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an +"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING +TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION +HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +License notice for Algorithm from Internet Draft document "UUIDs and GUIDs" +--------------------------------------------------------------------------- + +Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc. +Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & +Digital Equipment Corporation, Maynard, Mass. +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: permission to use, copy, +modify, and distribute this file for any purpose is hereby +granted without fee, provided that the above copyright notices and +this notice appears in all source code copies, and that none of +the names of Open Software Foundation, Inc., Hewlett-Packard +Company, or Digital Equipment Corporation be used in advertising +or publicity pertaining to distribution of the software without +specific, written prior permission. Neither Open Software +Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment +Corporation makes any representations about the suitability of +this software for any purpose. + +Copyright(C) The Internet Society 1997. All Rights Reserved. + +This document and translations of it may be copied and furnished to others, +and derivative works that comment on or otherwise explain it or assist in +its implementation may be prepared, copied, published and distributed, in +whole or in part, without restriction of any kind, provided that the above +copyright notice and this paragraph are included on all such copies and +derivative works.However, this document itself may not be modified in any +way, such as by removing the copyright notice or references to the Internet +Society or other Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for copyrights +defined in the Internet Standards process must be followed, or as required +to translate it into languages other than English. + +The limited permissions granted above are perpetual and will not be revoked +by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an "AS IS" +basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE +DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO +ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY +RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A +PARTICULAR PURPOSE. + +License notice for Algorithm from RFC 4122 - +A Universally Unique IDentifier (UUID) URN Namespace +---------------------------------------------------- + +Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc. +Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & +Digital Equipment Corporation, Maynard, Mass. +Copyright (c) 1998 Microsoft. +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: permission to use, copy, +modify, and distribute this file for any purpose is hereby +granted without fee, provided that the above copyright notices and +this notice appears in all source code copies, and that none of +the names of Open Software Foundation, Inc., Hewlett-Packard +Company, Microsoft, or Digital Equipment Corporation be used in +advertising or publicity pertaining to distribution of the software +without specific, written prior permission. Neither Open Software +Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital +Equipment Corporation makes any representations about the +suitability of this software for any purpose." + +License notice for The LLVM Compiler Infrastructure +--------------------------------------------------- + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + +License notice for Bob Jenkins +------------------------------ + +By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this +code any way you wish, private, educational, or commercial. It's free. + +License notice for Greg Parker +------------------------------ + +Greg Parker gparker@cs.stanford.edu December 2000 +This code is in the public domain and may be copied or modified without +permission. + +License notice for libunwind based code +---------------------------------------- + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for Printing Floating-Point Numbers (Dragon4) +------------------------------------------------------------ + +/****************************************************************************** + Copyright (c) 2014 Ryan Juckett + http://www.ryanjuckett.com/ + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source + distribution. +******************************************************************************/ + +License notice for Printing Floating-point Numbers (Grisu3) +----------------------------------------------------------- + +Copyright 2012 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for xxHash +------------------------- + +xxHash Library +Copyright (c) 2012-2014, Yann Collet +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Berkeley SoftFloat Release 3e +------------------------------------------------ + +https://github.com/ucb-bar/berkeley-softfloat-3 +https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt + +License for Berkeley SoftFloat Release 3e + +John R. Hauser +2018 January 20 + +The following applies to the whole of SoftFloat Release 3e as well as to +each source file individually. + +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the +University of California. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE +DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for xoshiro RNGs +-------------------------------- + +Written in 2018 by David Blackman and Sebastiano Vigna (vigna@acm.org) + +To the extent possible under law, the author has dedicated all copyright +and related and neighboring rights to this software to the public domain +worldwide. This software is distributed without any warranty. + +See . + +License for fastmod (https://github.com/lemire/fastmod) and ibm-fpgen (https://github.com/nigeltao/parse-number-fxx-test-data) +-------------------------------------- + + Copyright 2018 Daniel Lemire + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +License notice for The C++ REST SDK +----------------------------------- + +C++ REST SDK + +The MIT License (MIT) + +Copyright (c) Microsoft Corporation + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for MessagePack-CSharp +------------------------------------- + +MessagePack for C# + +MIT License + +Copyright (c) 2017 Yoshifumi Kawai + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for lz4net +------------------------------------- + +lz4net + +Copyright (c) 2013-2017, Milosz Krajewski + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Nerdbank.Streams +----------------------------------- + +The MIT License (MIT) + +Copyright (c) Andrew Arnott + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for RapidJSON +---------------------------- + +Tencent is pleased to support the open source community by making RapidJSON available. + +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. + +Licensed under the MIT License (the "License"); you may not use this file except +in compliance with the License. You may obtain a copy of the License at + +http://opensource.org/licenses/MIT + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +License notice for DirectX Math Library +--------------------------------------- + +https://github.com/microsoft/DirectXMath/blob/master/LICENSE + + The MIT License (MIT) + +Copyright (c) 2011-2020 Microsoft Corp + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be included in all copies +or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for ldap4net +--------------------------- + +The MIT License (MIT) + +Copyright (c) 2018 Alexander Chermyanin + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized sorting code +------------------------------------------ + +MIT License + +Copyright (c) 2020 Dan Shechter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for musl +----------------------- + +musl as a whole is licensed under the following standard MIT license: + +Copyright © 2005-2020 Rich Felker, et al. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for Sun Microsystems +----------------------------------- + + +Copyright (c) 2002 Sun Microsystems, Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following +conditions are met: + + -Redistribution of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + -Redistribution in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + +Neither the name of Sun Microsystems, Inc. or the names of +contributors may be used to endorse or promote products derived +from this software without specific prior written permission. + +This software is provided "AS IS," without a warranty of any +kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND +WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE +HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND ITS +LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY +LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS +SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS +LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR +FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR +PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY +OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE +THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY +OF SUCH DAMAGES. + +You acknowledge that this software is not designed, licensed or +intended for use in the design, construction, operation or +maintenance of any nuclear facility. + + +License notice for "Faster Unsigned Division by Constants" +------------------------------ + +Reference implementations of computing and using the "magic number" approach to dividing +by constants, including codegen instructions. The unsigned division incorporates the +"round down" optimization per ridiculous_fish. + +This is free and unencumbered software. Any copyright is dedicated to the Public Domain. + + +License notice for mimalloc +----------------------------------- + +MIT License + +Copyright (c) 2019 Microsoft Corporation, Daan Leijen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/net461/Microsoft.Bcl.AsyncInterfaces.dll b/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/net461/Microsoft.Bcl.AsyncInterfaces.dll new file mode 100755 index 0000000000000000000000000000000000000000..433ed54e200bf3292fbb348af0d4cfaca437fcd1 GIT binary patch literal 22144 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 + + + Microsoft.Bcl.AsyncInterfaces + + + +

Provides the core logic for implementing a manual-reset or . + + + + + The callback to invoke when the operation completes if was called before the operation completed, + or if the operation completed before a callback was supplied, + or null if a callback hasn't yet been provided and the operation hasn't yet completed. + + + + State to pass to . + + + to flow to the callback, or null if no flowing is required. + + + + A "captured" or with which to invoke the callback, + or null if no special context is required. + + + + Whether the current operation has completed. + + + The result with which the operation succeeded, or the default value if it hasn't yet completed or failed. + + + The exception with which the operation failed, or null if it hasn't yet completed or completed successfully. + + + The current version of this value, used to help prevent misuse. + + + Gets or sets whether to force continuations to run asynchronously. + Continuations may run asynchronously if this is false, but they'll never run synchronously if this is true. + + + Resets to prepare for the next operation. + + + Completes with a successful result. + The result. + + + Complets with an error. + + + + Gets the operation version. + + + Gets the status of the operation. + Opaque value that was provided to the 's constructor. + + + Gets the result of the operation. + Opaque value that was provided to the 's constructor. + + + Schedules the continuation action for this operation. + The continuation to invoke when the operation has completed. + The state object to pass to when it's invoked. + Opaque value that was provided to the 's constructor. + The flags describing the behavior of the continuation. + + + Ensures that the specified token matches the current version. + The token supplied by . + + + Signals that the operation has completed. Invoked after the result or error has been set. + + + + Invokes the continuation with the appropriate captured context / scheduler. + This assumes that if is not null we're already + running within that . + + + + Provides a set of static methods for configuring -related behaviors on asynchronous enumerables and disposables. + + + Configures how awaits on the tasks returned from an async disposable will be performed. + The source async disposable. + Whether to capture and marshal back to the current context. + The configured async disposable. + + + Configures how awaits on the tasks returned from an async iteration will be performed. + The type of the objects being iterated. + The source enumerable being iterated. + Whether to capture and marshal back to the current context. + The configured enumerable. + + + Sets the to be passed to when iterating. + The type of the objects being iterated. + The source enumerable being iterated. + The to use. + The configured enumerable. + + + Represents a builder for asynchronous iterators. + + + Creates an instance of the struct. + The initialized instance. + + + Invokes on the state machine while guarding the . + The type of the state machine. + The state machine instance, passed by reference. + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + Marks iteration as being completed, whether successfully or otherwise. + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + Indicates whether a method is an asynchronous iterator. + + + Initializes a new instance of the class. + The type object for the underlying state machine type that's used to implement a state machine method. + + + Provides a type that can be used to configure how awaits on an are performed. + + + Provides an awaitable async enumerable that enables cancelable iteration and configured awaits. + + + Configures how awaits on the tasks returned from an async iteration will be performed. + Whether to capture and marshal back to the current context. + The configured enumerable. + This will replace any previous value set by for this iteration. + + + Sets the to be passed to when iterating. + The to use. + The configured enumerable. + This will replace any previous set by for this iteration. + + + Provides an awaitable async enumerator that enables cancelable iteration and configured awaits. + + + Advances the enumerator asynchronously to the next element of the collection. + + A that will complete with a result of true + if the enumerator was successfully advanced to the next element, or false if the enumerator has + passed the end of the collection. + + + + Gets the element in the collection at the current position of the enumerator. + + + + Performs application-defined tasks associated with freeing, releasing, or + resetting unmanaged resources asynchronously. + + + + Exposes an enumerator that provides asynchronous iteration over values of a specified type. + The type of values to enumerate. + + + Returns an enumerator that iterates asynchronously through the collection. + A that may be used to cancel the asynchronous iteration. + An enumerator that can be used to iterate asynchronously through the collection. + + + Supports a simple asynchronous iteration over a generic collection. + The type of objects to enumerate. + + + Advances the enumerator asynchronously to the next element of the collection. + + A that will complete with a result of true if the enumerator + was successfully advanced to the next element, or false if the enumerator has passed the end + of the collection. + + + + Gets the element in the collection at the current position of the enumerator. + + + Provides a mechanism for releasing unmanaged resources asynchronously. + + + + Performs application-defined tasks associated with freeing, releasing, or + resetting unmanaged resources asynchronously. + + + + diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll b/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll new file mode 100755 index 0000000000000000000000000000000000000000..d96ea6b2ec355bc4c5a0c4127a704dcb3671b913 GIT binary patch literal 22120 zcmeHv2Ut@{*YMn%5Fiw(f`||)ij;6eM-in8QbdY~WiccHA|b&fh@dD%u`4zdE7(|F zd+%M>-n+Zjwd-qNUEBU=CIMpEec%82zV~^*=llQb=FFTkGiT16Ip<8dmrdwXjaUdF zHvInl6QM1T;-@Qte-Fx_*wk^GDcWFoqU{zc{zTi{ywYN)HA9^%1o z0Q?X#BY9dQHzr{D$x{aq=p(Ko7}tPNxGMgyIn|<=1W#Y!+XH6?AmpcyGup=opxkX!fRLAQLRN+|*&k!=8E zFjF`9={#Lwy7)?oOaT?KtXO8O0|YA6eYzqPu8ZURWUNShQB-Cbb zGeX0*nezRd1MOxBljh!-S~4_h2~{bC%q`GoYfv$5f!wU1PASmX9QOcv7|yWV0D8E0 z)M9Km7=SLy!l;j?)Xf%mF`FI=b=a<6_U-6lIHzg_WGgp2fUaKp?KH*iPBhD{HLf2@ zvr2&rn`W1?A#q1oHmHnMWlj&pMG62Mt_7lp;u>!DxLF@)1`6RqGY6dLl{#W_B0UsS zS@ckhs(3mydMK{Q($EHL>S?Me+CqV*SmlIUG^z=NRGC8G?v@M-nS)Fqh&j!|8UyW7 z9F;S!-Hx_lX>tzqP!~*rcBLeP+eJe={Lu7Juqv)i@7z+H(k)A2Qn~c7_5eRya}a7x zTa|(haUtoTN!&GwhbHla1ZIL&id)cbUKmXTHS!^&X{e!r6u1NTdr;<$s}98sJl*J_ zxI<4KJrwui*;11#z#O@S04Oio*1eUxjeAS?O-(Iv3onjJ07;3azN;6jorj(qI3h5{ zl7NsfXB^~!?FID1@-k9Fwm{`e8tD-kOxd=Xo<_8rAJE9?OxZS>o}q63fE($1^7It} zkUI^$D7Qe!xdj36G^F)Qu?{?}-GU)8HgM|*316Q!AY{$JxEwEQumY?ddKexl%gPPp z@ZfTSCxK|3;V^M*e$yB*KTADxJ^41ao1#b%w-& zbg2l1Y&&8jtoaLLeEHgD7F;O08KhP3J@LXq5)NP!?ZG7LJtDr zT2H{h4FU_-opy`G3G|ESZylsi20n*XWNhGRZ9wz``i(Il>M_#yDuhPeq1e-zC`mH| z^iZt)Z`Gw+s))l~afZi3q9bAgpjrju65SSGtMZF7GBx^Io!V*av%A%24tO0$l?a^5 z@T`;I0_zBl5=oGNA8TR@cpHopmneDyAh88ka7)Iue6&R=82Kt5kv2{7h_oT`h_8Zm zh+EbbH-YehV;-mx_Xk;|kNrYz1e)h^6lqY#QS<_+Q3}yNg<3#rfa@*6GXx@OXXjt# z5uVaLoWcf*q`^>- zb6N^2gS;8ecT0-}V@B1u3mOyjvpEvCf#wNp&^7-^q%s?3kvQX+?TYqffPa$ zf+->NUfL8w3Ry1Mkitk2%mo5bNFCrwmPivwaT)$09$F2l4g7I2^P`Z#I-}WMep!eHbXAEDU?=VQ5KU38C8%=ttmt0@sq7 z16i2=DB#9LZ}lP#Ij9$Bh8`E)K{)?`#=Xqb$8~NR;{0A3=O1%0{6yetLLbG#r56Y{ z1ITlc3~F-GB7|!`L%4J@cLqp4TE7@5#rn9;9>Xh8M;{;u4I!n!>*IdU>*1RB3ACng zTP1}lHqeTL`VkmS;8-HzMQ3$RCu^waZw3r^Epxp-0hY-s233eF9Tn?>F2$l?^76N8Uuu>Sk z5a!p6V0~aldxBM1p>p6-3UW#TvnFNx&=sg@fNW72lntk@7)W6)c0n{?E->#xWC7bW zR$DU^1ae7%hdW4cO8+rUp^MaY)E2d*pV4hmJa+`-{plirxtt1sm_ng#oLd0xS=Ry9 zajyW(;o|%;3YWTYPXM$wI1g|l=P1CdK=(yf(5fx+Hu#0o@CiWesi9O$6o&=_q|jP` zu8>dSfs#;_Z6^b)+umPbxCEg?dg;_FkX7>>(z7?14K*7vG4+bVUV)!OCZ1elnnnY7 z7^^|ntapG_V2r9l5!?WnuWF2;DzuG?09`N8Vv7LNL#woyKMT*$c7jzJT-X0Z>!aJ6 zGLW-Bls(pzVX0XL=%cn>I%UA(BB!Tl8q7A#ppwNy zF$BXpTY-3}H^Hiqm>SJ;Lc=wf0iIhYG(lU2b?t=K5o`+K;)Hf-%7_M?&|!jAqBK-V zIicrT%m^@NWQ>C>szly^xgaw$3Q57|DRiF3&;-1O{!ac8DYXGeqXbwfC=}3?XK6WT z=o)UiHNVYk>P*(dd|U~)me4PSh7w6Ma69B_a2GNJ#Qh0tXRTOkg>IV+ou> zU@brj{Qd6F3ANn)2LiCxeN ztWZFiupR;jY^?&yNB=Dv3o>B(c93lf`7d;C%TFUFL_0! zf(|J<9$_B|fjSiGhm0s=x*uu-#}*5SZTDzC^i|K|BTKXtU~9A*pffrN&;wlp=!;C* zeAEe90gOOx0LG!N1ok6PN#GcODQG^xzGy2z5qb(R4+U}fNQJrs9Ezp@tkiO7;6$MD z&~F69!g`j7E+tR|6qbG^h2^|MC=`v`vIwlBF?|n#Hwi>=(yV78 z7Oul1&=ZN#X7mZ|rGBH#X&;&cTGj^-G6DZ-L3T?Fw;H_Zw*Cx&54g1eM{(u>#B>_= zNGzyr3^i$3Phph?pTX_hfFIFtfnkIS&@{9J?Lhm%k`>e`>IwCM;?e9f%{~oB6>v%v zN%tjQiE+)-iRMDAz#fbfTnC{}bYJjS1d?&VQ}LdTf}9`mYGabZb{DND?JN-+W)*hK zTHH!oZmp$TYw30foEshoZ8=YiduefRNIg&}@EJ6GDs)Qx(faQS!okiBgy)lME0bV3RG)DO5_t5kk30BE#gr ztJO;=E0m-PRe51WLaAEIBtZy*$dV;0iMpvgMNy~}fs{(zOA{6HVInLtWWJC_txy6f zN21P*RZH>(D76qYFuLJ}0>LYX8K?%OhfAVMj{DyYtnP{?Ew!dJ!bCXq{& zQW1)jstOb;&0tW1Vz49;uGPrUP^?@nQNo>AoGHDn=p6g)j@v^Q0o(=PDI)MWISo9GaJz87>s%!Qm%bDv^niT%uN~g>tb_ z3GG!xfiOY&1t3Gz5K*pBo+AO-@$92aNz*K96{#67o)Mi%B^`dZq-jc;CK7?PYH7YC zwYWeM15yB^ZW1-dqLqq#ErrYrN=;D<)sh6EC|4>6kw`CJkYE_i<#<*T6;M%^iur2o z0_U_np$K7t8mtjTC?&uFfkKSyvm)RZ@jYP)0OdflG=M%Dm=+s3B^JTm^p7Ols^U8YJ!|QGUNLR-Ua;=93^G zlzmf6>**kl#<^vr;n1Hv;h0%_X@Lxg)()ROe$10mqtnmHBu&v%`Z?W)hQC8 zQk0t{ROjkc(&(FXnhc?32+8S`Hx4mL32rS?H*;?+h)@(1E2TNPIz0lh;kT$TS=7JrH!9g1d+O~YHu5rnC zbbwMMa&Zr3l0v195Xxj(;N;jT@x^`<-sFIdwhY>bW)RdRGNj5>HD(i}BBes5$X4^i zMKV5dH4?wFg(8WHFP6!)qG4x}f(J-aAwI~#k#IQI%(#Y<32$A#BB@DL?4R24pv=J< zQ$y)eb*?TCZQ#)jXJ2|}lZGVO+E|RfUd>Q!qCzdrE+!L5);AOzp_HnnBBAV?k{$)v zlRzmNDI{VDff8b)WKqzpFU_psp8n1T{Uvd@V@It9fEKzF6jlTY6QD*)ZHL-GgWDSJXDOMb3jV5CAXwC)vnGGg zl(yzK|9Kcs(7^ybes>n3xY8aN!uS&^E1ZLQS z*q#bC1sF{*|3+{e`3qHe=CnD@>?5*0YF?VjgcD2FhEkLYH6YO9mf9THs5Y0W)RbXs ziYQbn!O#(~SE>CXdA16wOL1*2Wzu`ihVOmW}r!(h`lEY2p+3fkaeD{7y^A zlzdGgJtsIDtKtoLTt&!WL6sUih|5oxnvM*FdO-a6(txuWT!-cT9M4zGHBGCb{xs(IqGBn)sIUq9!io>NH;1!cTV%eM7 z+uL)1k44!i+%66B=4E4PjR^g_ z2xPb*i-tsFmYD1Y{X^nMSaDb!;0R|Fjzw851~X`mJ?^P&3T1DAK$KdGvUzxL96cU_ zteHN?-lA-oMcGOXw1;aDXhq;MQe_lrHp;y01RT9+7z_MIidPz&Q7k-WIO90L=>`PD zy^yjCSVtLFJUxrDGa9nJd4_q}73c?q=?b!9;nrfw2m%7xV?Ep3nwilwwAf0th&5@* z#W*mw*M|zw$R0P{$VDtbWsIO01oA;-1AwhYFpn3#i zHJg`B#0q5d;9zG8m9YfcZjE&jT!Avc+_1t8jt{l`^Mu#0JjQQfLes&*IQXOp zcydaZ01k6-nxs%%)q!I}Qs?+>+ho_t7TxajdE@#g!AQ-v4rsV@?8=Bt_Nf-52BrNt zb<*+(YC1Q@$IfhlHEolAB<#-31Lsu;CED7`N*hcTluCpFN$3P6YyyBQkSR4y8 z7=?KnP|WQ?V_>78S2M771moz>j2cR z2w{Zj0Oyyx&C} zHa>5|p&L%}@WAU^3Z>F5)0M&kI59M>NF>gvD5!_Ej}TnSwc;m6;bRCnEqQ9UFP#Vb z@EPD>YSpyI#;dtZSeyu3Zls6V2MYr%*Ag+jrlmI@ z4B;Cb*maOCB`MF9$YA@$Q^V0r#e*XT4=aJ!sBRu;na|UF(F0psI56>~Djxo#M+t#i z3MXcs3NKEuw)2W$ANfsd0qKPB#5V*yU*KoLHQ~Y*B3}WUcwU+cc;F+Vs-p>4yRp%X zrCH{tg72LE`CkwGU$2aJRLGn{#sMIdkAUwR7>M6qMpGyZQy8xTrDU*FQp690QYhpL zf<1x-Swcn-7!)M-69@VF1^Q=8M7~0aFi;c(FFykVButQhkiS?+%)_i{QunPQnt@lL za37v5f$It>UjEXQvbMQub%Cm*w|5SxuP}=*QsjG!6>7L3@K$QJYY4TYP**TR8XU$j zR-Ox&9&n-s#00EEQIr5%2`Sv6V1vZoh5bsW8Z_)Ped5B~)9qfI&0jcav!nOvN9i}p zuCDVKn6@x8?#!Nt6O-dZ3*x)l_v$p~&4-yL*YYE2|KUG-8}v;qZLkYgejYKkfBOKZ zh!+++AK!I8zdrNa1}{!>zlU-==kt%mC1%g!f2J;<+mcvW-HU7d!=%DT$6NUtXU{fC z9=PH0wxmv@JHS^Ia7XwibrYfzlCWEs!EZw({MtcA`{3vR9}OY+#sm39!4GG29{he- z_eoBPOzAX`bA7E{dF)z)y3MV2jEu)TyfeMAJ%WL&Ro;rMf!`LoX2b1eF^toB@CtUnTPYdM(oRU zvQ9mOGQn5iu$dr~%2B>b1dbyi=ReZsPgh{_wK~4!_Fuv%!W_P?D*KWR38{$r4jtEv zfnVD3Sb))*ukO%J_Os8}Zt<;e`ZVjt z<_JD=ArBj%W;xIjAOZ7%7QJ9ks02Pz_}&1nr(kE84Le5sxZoulZV%z01ymK3>+T+L zjWz5bkd*?N)KClWFmt}c$%@orVBDI2ekcp;0M*fv6a_c?3b@(LhraPH6@S=}1iTbz zFz^!tRRvR}M!AsVfplSj7eh@E=mPI&aXTzu7Lh&#qz#37SYGj0^&^3w3U13402}M` zh|FrjBO9n9ZGVmJaj!CHgZscz6q7ub2S+9mrs;Ja|*2f|^*4)TXg_Bz02&$FfOa2KZmh%lGt*xqsOL z_a!59CL&|QeX4*{H{d9TAGRjZSDe2$o# zVp~;ZYXo)cPJzJ_?7LGSEe{?PD+f z+G-KPGt=BhFQP?NlLW941RmHPeUJd4FMRhC2s!ex5zMg@v~A`q2kB)xqy2WQ|EgSk z;EiV*2R%OY5f5_Z5boFp3P7h=3prrXYN)debogywf2CLKTVaGd_MJv9*rTw8W7}0i z9KjZhziX0_G4{~b#L)_mu`%*tOf$3J_WyrB)~>JuP})c)29L&8{`a=C3Z!oIQiOhl zS^v8I*E8BUpA5V^D{|le4 zns4~l!1uBL|M`DU1LSWUXc{pUE@>P?_o|qxwBiRgL0%zYsDnq)`;#kwF95*6kktIx9azjzOm{> z{66pLdi&blyjr+0e8A$m8TDgKryPj5X};je`Yd|sEF*{f+(#cbb{XyTaFI)5=M@+4 zdwnj?oH2oYx)b;Oql1ncyz9o*7#Pj$Ipj*vvV--uv#%-Ujvpvk|MJ3A?p$BA`M3IK zN%s5tDvw*fP1YMQDdC5kV{h#$j~m2cJv=#f_O$WBO&g2^W-Vu~G2Jlf^sa+ft>UW} z8%Cse9vr*6v)i=s>_0s9%%0!jnv1t~o7es6fmEqrj>m^fj@JUOgvg!paw}uZGk!hYPVk%xzp+u=x@RFq>g`g#4g{$gWn)n6y`S|#H;3U{r zBat(fsLU!xF20+jcdlZ&O<C@L!A z=Qq8=#P=8lc~V7z%3GwA;R7`|4Y&+=3wD-F47`{?FD8f&<&3a#%oN2=V^Wx&jW|PB zMg7wbU|6bu(uJBa#)4Z?)Sqk`j&fhd4ps#XpUYPMaX{_Suv*Y<`U*?5c&jLVRkX3+ ztLdT6%XdxKo{~~L=MV3*hBF*0Jt=N(?cTi2S8`slKlbXgE+^>R-G!6P?rm~B8GQ2a zl9xqMEBkC&h$>finmze?ALl1$3$|P>o2Rtj8BuNVWM!xzwo|wFr9)g!`In1g_IZuj zJ6|%47|fTyU^8H+|iIYW2bJ$C)p$*<0+jUOMdA-CN^V zcIYxM=Eu7wy_}9GndQztbo?KERP(34TYbW(sE7CZdDq7bJaBA##opAT!+OuWzfS-B zC+9Pddk)l}+~9C~*vSJ0yAJzBJUG0GTKu`~deefui$kinjxBw9a+-TlXDaAO$;8b! z-rp$q;$PU9I2I*M7@jEnz#Y>$_rZdp(!^W&+z8V+AGdWA&p+yxe&(G=dGQIiIUV$h z9o-ZX=GEk&6~0?n4xD75sPsKP{PLS4vq#nVWGk6L>t7sY?Hji4*Z2;Ho!A2|-4C{3 zGnli*&_I!MDg0i`V`1B$&wbVXll=4=y~(FeZ+7f9N9L%?58dBl!hp!mo1R8(sp)?C zAD7B-;Y`30xWUS+qhR@eBt2YFm?R5N&@r=*Cm~C5v?1smUf7vSL zdP(oB7UNRI{iEcoYG!2IqbJ@qJbox(L0%e@QL@zVP;Fg6Ufjag!(Q7>Yf-piW4HHg zrb54jsnE;PtTq(6)+h6kFSXpw3Dv($Z|xtfaM52;KM%m z)ARRAGkgBZ%kt$FW(j`VUT*5$c0qV+_q>OFl9q4b1lh4;w~g3u?C@(~-XV+2M$d!x z)pFJx4!%HH3Bu2fH7OR49zK15i){7$*trjLe>i(%PRcs2=l<1KmU*lyFMVBf`33s!&pbxro|y)(;)KE3!f?tW~C21~c44W&6{_r_%n$z10> z@>2TTe!Gj@++IA*-|sfrb8^?f9(!+%iX3~uF#h2AB@y208E@t9hVXiOTJ|3>V|Hi{ z-;r0>jIp^sKk;?VnjO(~vRP+uUK}&QsBt-b3d`X`#*AaA-BemrY}of9o%Qd#i&3kl z239oN*a2VE6v8ns0)>%XQJWTQ%%+NI(G>gj7#1u6Uo3MFpSc#Y(bqRHGRk7Mt2v)0ampQV=!QVXNkDJI!1bz!%3(nfK*kv-lnLa*b zvHPKMaf8J!nMq<28*y0d!vAiu^A|!t>bWGnw+~O!<^1CGlBIc_q`O zu{)Y->HBxx;l*355UIQi;B}TzSu840@pIMrOxGp`G~?&s!)v2+FOmtTd3-yDZ@`M- zo>y}RsJUy?+>-KnZFEBd1XQy6=De(0GV5k)u^s>1Wp$3z9HScZTcWA8;Wedai;b)I zN;3JLq3`x9&*WEr-qqy+_h_fx-IgtSCA}uv?c~2?W`D`Z>eBJiNokjjrw%)77ia$} zBz%1G={2A7?u6>|JIuM)x%HCs8`~6355E0Sd?d2-kP_!tmZeLp)s+)pA8SWPyYCxk zwtew3J>xk~bKmFkXVkfOanI`=D{?fH%KOZ!`K|Kxp2@GGJ+6Q3bb6=%Gr8-kyQ|wj zJ^kw|)77^px$Y%uo_ci*9vtM0D5a?N^7x( zK7-oZjad7-{k!X)9eL7O>oUgX$`uWp)%&~Zah6iu#?@EvUbd{C-Tu~zB{NU|qrWKZPG9}GqeD4GoHLxY zg^pIcgu;!_e>v2ez3WEU&!%qwxGwR2GV}NPel?fT#ro)-8Lwt8F^r2bt1WXpjXE4$ zJ7-Cks3HgdLuVH*Tu@Tt^gd>W<4+&DIhVbe|895Q=D3-+9~Ta>d-5o-w%9iA&x`Aw za|`dSe*ba&W23T1(oU;CGEdp@lWyE7%ok1Rd}dy+#2&lL(w*vunESLXc^1Z9+vUTL z#~1hCTR&z_`k-EkF;RQMkIWg|ms=K-_o;Zn-ktgR1CJ!DEKN$1P6#TjFEbU^=i#); zl+XB2FI<0l;M6$-*OjkgAOLBPpoT1ganmLq&ctx6Y(60y2~1)C*^FB=-pvi!0w*@F ze@w{H&DL>c8EYo>c4_IHwe(o)A3HtFEq6Y@D0;-$K_i)Po#w^@KgOrds?6fs>&AM! zGTXoMXd_aFP~&5GG0hr70!dt=JMNp3Y; z7A9DGY<2cck$$WW&PfQKP;v7)`dI(t&hOVc z^xv8sf7rd)tmGF?ub!KR6g=K#w}E$EDqC}n+y0m;AdlDb_2yk}!{=VDWd)WVFv&ji z-2Zg&G^+Y}XNmIk+M5@dH)jn>XaCwd*?Xz)an;!#4qYlvO_?#X6y5u2$LN<>{SqSMo2XY#8Lo+wyqQ&e#cy*X*y|;%cY7aPgVmgZ4)I z@7w3sS6JL;DlD!yO)iT?2`Vg30_|v%h2X0gi|s(#OjE3HuVN~wo*bh_D>Q@KmTF==yHg5b>uTDl!d-nC^UOsl) zfaVPNW6rBtXKXFWWk#S+Ff3`o0w2C_uumU`T}D%{>&j0rEugKH4UzMH>KT4qjjs_44OEr)n~U5pTtg+7LV;ReURe^ z*3ln(Z{Kn%=2^#e?SwD?v0raQ-1Et0`p+CgKJ35!$jGhpCeCcVnPtOlOuIkzSSbJf zh3)mL>YXD_C{|dw0$>91`} zUnk7^ae}1q`p2z9!dpD(?0LyB%(mWTd0zGB-wtHerf>Z;^4R2<3#$*0x-&yPD)fTm z{;{2^3~G;DsajRJzvr&~@V+@`a!XOoGKH7oKW)5{}#bW!8Rx;1FTMrRv+u;|Y_xk*{m{Bk=69UuAdRbk|#{4aLH7epQV zjT2PAiWoX9y7fWd+&-i7)0keG-Ea>Eu6^p@+NbGG=3m z4dlKz%gQc(Jm~l2xmG_;-G1^4)zaQ;(7gEtz9*(zbj-7^T&%PXeQ4vx4Z6qcxuD$h z#N-r%{Liih^P}qf$5+-D*h~r^=R31a+T)WkD+CLqTRKKf5?DWEY#&q(@QH~l`EyUN z34UubjZ2N6x{Qqyo{5|?Kf&gu&&je)!rfW>tM+v`ou}@+XZ^C(b>fK=c-yAmS3T(V zlgr8zBYVTO`ydE>8I6}9hUM<$5`_LrS^sk`K}g^eFmUSukci7vxpAJE2lw9 z7`?ZB8^-cS$l=dU z$9~gvLm94%xdOQGd#_`YA1v&bm3yZ1^yK=rFe@qe**R|oc)u&IQyr-cLVr468vucZ_obv_r~-zxqay7tS;q)Se@rB zs&A`U|9I)~H-cTK^lmTv{60Ou6|;Wd!R#XgZ@jtxe8|q9f1K}n=Z_sv^HS3dJbG3{ zT71}=GU52^0T$y1AMe^VY|bzJZ2s)`#}79Cvs`+`sh@?L9bUbA#Gw%{155jKv42@x z+BF=8bo8x#Y^Sjd{QQeDe3BB}fs+M7lVIoO;SyQZqTD!;Vd#*tZH6_;hdo zDQ&g)=S_Df`EJk3oP905>%$i(YqP5-{5ddd#IFat8%=3 zkoO}>YX(*iS(<R?=n)=whq4c?$GWEmuj_mDut{2N$!Jw4gL|{Q9!ctVMkVeGIOI{m9w>UH$*QJQ;Te{$F{70lv)D2SC%DVr|AUMN_(JsRu3%&}mEK*X~U>Civ(| z*KrvG+@7Uh&#Q0DQ&n}k`x20sRbGxJU)|xHTwizj#r?9uJ9;z>4yfFhZN-{7e@fWO zSvKZRhL}IxxoVH&zK?TbM4vvPzoTvR~r;}V{eec|=dy!Q^b!Y6Ft{dPc%jAm-g>Npa4)&ByeLuFM z&)d9YBd6bnSuTFvrQWFjmKwv}W7E=9`7TWPdmRR}x1jtHQ+}T*|BWf%$>#A-^s627 z?&97IeYCXYhflHl|Jd|+`smi)pMRy^3@W)B#+1+cAK(YySDX`@r{_NC&n~kn=ZD-k zUzL7n@L~TOmqvmAGwqF}R zLXbKlx7xnY_s{sCHAn1seGJ)qnb*Lb$GhMep241_m{@b19{e%)K=Qy%BWpY}U8he? zFzj6!B|pE`e#M#3k0x)=pV9jG#z7$|uU^FTI&8nFtiVp3^K$m8v+v0X0-^r{H$nq9 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml b/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml new file mode 100755 index 0000000..cb1744f --- /dev/null +++ b/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml @@ -0,0 +1,223 @@ + + + + Microsoft.Bcl.AsyncInterfaces + + + + Provides the core logic for implementing a manual-reset or . + + + + + The callback to invoke when the operation completes if was called before the operation completed, + or if the operation completed before a callback was supplied, + or null if a callback hasn't yet been provided and the operation hasn't yet completed. + + + + State to pass to . + + + to flow to the callback, or null if no flowing is required. + + + + A "captured" or with which to invoke the callback, + or null if no special context is required. + + + + Whether the current operation has completed. + + + The result with which the operation succeeded, or the default value if it hasn't yet completed or failed. + + + The exception with which the operation failed, or null if it hasn't yet completed or completed successfully. + + + The current version of this value, used to help prevent misuse. + + + Gets or sets whether to force continuations to run asynchronously. + Continuations may run asynchronously if this is false, but they'll never run synchronously if this is true. + + + Resets to prepare for the next operation. + + + Completes with a successful result. + The result. + + + Complets with an error. + + + + Gets the operation version. + + + Gets the status of the operation. + Opaque value that was provided to the 's constructor. + + + Gets the result of the operation. + Opaque value that was provided to the 's constructor. + + + Schedules the continuation action for this operation. + The continuation to invoke when the operation has completed. + The state object to pass to when it's invoked. + Opaque value that was provided to the 's constructor. + The flags describing the behavior of the continuation. + + + Ensures that the specified token matches the current version. + The token supplied by . + + + Signals that the operation has completed. Invoked after the result or error has been set. + + + + Invokes the continuation with the appropriate captured context / scheduler. + This assumes that if is not null we're already + running within that . + + + + Provides a set of static methods for configuring -related behaviors on asynchronous enumerables and disposables. + + + Configures how awaits on the tasks returned from an async disposable will be performed. + The source async disposable. + Whether to capture and marshal back to the current context. + The configured async disposable. + + + Configures how awaits on the tasks returned from an async iteration will be performed. + The type of the objects being iterated. + The source enumerable being iterated. + Whether to capture and marshal back to the current context. + The configured enumerable. + + + Sets the to be passed to when iterating. + The type of the objects being iterated. + The source enumerable being iterated. + The to use. + The configured enumerable. + + + Represents a builder for asynchronous iterators. + + + Creates an instance of the struct. + The initialized instance. + + + Invokes on the state machine while guarding the . + The type of the state machine. + The state machine instance, passed by reference. + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + Schedules the state machine to proceed to the next action when the specified awaiter completes. + The type of the awaiter. + The type of the state machine. + The awaiter. + The state machine. + + + Marks iteration as being completed, whether successfully or otherwise. + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + Indicates whether a method is an asynchronous iterator. + + + Initializes a new instance of the class. + The type object for the underlying state machine type that's used to implement a state machine method. + + + Provides a type that can be used to configure how awaits on an are performed. + + + Provides an awaitable async enumerable that enables cancelable iteration and configured awaits. + + + Configures how awaits on the tasks returned from an async iteration will be performed. + Whether to capture and marshal back to the current context. + The configured enumerable. + This will replace any previous value set by for this iteration. + + + Sets the to be passed to when iterating. + The to use. + The configured enumerable. + This will replace any previous set by for this iteration. + + + Provides an awaitable async enumerator that enables cancelable iteration and configured awaits. + + + Advances the enumerator asynchronously to the next element of the collection. + + A that will complete with a result of true + if the enumerator was successfully advanced to the next element, or false if the enumerator has + passed the end of the collection. + + + + Gets the element in the collection at the current position of the enumerator. + + + + Performs application-defined tasks associated with freeing, releasing, or + resetting unmanaged resources asynchronously. + + + + Exposes an enumerator that provides asynchronous iteration over values of a specified type. + The type of values to enumerate. + + + Returns an enumerator that iterates asynchronously through the collection. + A that may be used to cancel the asynchronous iteration. + An enumerator that can be used to iterate asynchronously through the collection. + + + Supports a simple asynchronous iteration over a generic collection. + The type of objects to enumerate. + + + Advances the enumerator asynchronously to the next element of the collection. + + A that will complete with a result of true if the enumerator + was successfully advanced to the next element, or false if the enumerator has passed the end + of the collection. + + + + Gets the element in the collection at the current position of the enumerator. + + + Provides a mechanism for releasing unmanaged resources asynchronously. + + + + Performs application-defined tasks associated with freeing, releasing, or + resetting unmanaged resources asynchronously. + + + + diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll b/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll new file mode 100755 index 0000000000000000000000000000000000000000..bed514f036892dd9987d5758257cac325111a591 GIT binary patch literal 15976 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml b/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml new file mode 100755 index 0000000..5fd48a2 --- /dev/null +++ b/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml @@ -0,0 +1,8 @@ + + + + Microsoft.Bcl.AsyncInterfaces + + + + diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/useSharedDesignerContext.txt b/packages/Microsoft.Bcl.AsyncInterfaces.6.0.0-preview.7.21377.19/useSharedDesignerContext.txt new file mode 100755 index 0000000..e69de29