diff --git a/.gitignore b/.gitignore index df683c6..3096fdc 100644 --- a/.gitignore +++ b/.gitignore @@ -56,341 +56,3 @@ StockMan.suo ReleaseClienti/* - -# ---> C Sharp -# Build Folders (you can keep bin if you'd like, to store dlls and pdbs) -[Bb]in/ -[Oo]bj/ - -# mstest test results -TestResults - -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.sln.docstates - -# Build results -[Dd]ebug/ -[Rr]elease/ -x64/ -*_i.c -*_p.c -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.log -*.vspscc -*.vssscc -.builds - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opensdf -*.sdf - -# Visual Studio profiler -*.psess -*.vsp -*.vspx - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper* - -# NCrunch -*.ncrunch* -.*crunch*.local.xml - -# Installshield output folder -[Ee]xpress - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish - -# Publish Web Output -*.Publish.xml - -# NuGet Packages Directory -packages -packages/ -packages/* - -# Windows Azure Build Output -csx -*.build.csdef - -# Windows Store app package directory -AppPackages/ - -# Others -[Bb]in -[Oo]bj -sql -TestResults -[Tt]est[Rr]esult* -*.Cache -ClientBin -[Ss]tyle[Cc]op.* -~$* -*.dbmdl -Generated_Code #added for RIA/Silverlight projects - -# Backup & report files from converting an old project file to a newer -# Visual Studio version. Backup files are not needed, because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML - -# ---> VisualStudio -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -build/ -bld/ -[Bb]in/ -[Oo]bj/ - -# Visual Studio 2015 cache/options directory -.vs -.vs/ -.vs/* -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# DNX -project.lock.json -artifacts/ - -# Ignore other intermediate files that NuGet might create. project.lock.json is used in conjunction -# with project.json; project.assets.json is used in conjunction with package references in project files. -#project.lock.json -project.assets.json -*.nuget.props - -*_i.c -*_p.c -*_i.h -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opensdf -*.sdf -*.cachefile - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/packages/* -# except build/, which is used as an MSBuild target. -!**/packages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/packages/repositories.config - -# Windows Azure Build Output -csx/ -*.build.csdef - -# Windows Store app package directory -AppPackages/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -[Ss]tyle[Cc]op.* -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.pfx -*.publishsettings -node_modules/ -orleans.codegen.cs - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -*.mdf -*.ldf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings - -# Microsoft Fakes -FakesAssemblies/ - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# ---> VisualStudioCode -.settings diff --git a/StockManMVC/bin/roslyn/Microsoft.Win32.Primitives.dll b/StockManMVC/bin/roslyn/Microsoft.Win32.Primitives.dll new file mode 100644 index 0000000..d7b2a2c Binary files /dev/null and b/StockManMVC/bin/roslyn/Microsoft.Win32.Primitives.dll differ diff --git a/StockManMVC/bin/roslyn/System.Console.dll b/StockManMVC/bin/roslyn/System.Console.dll new file mode 100644 index 0000000..f47e609 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Console.dll differ diff --git a/StockManMVC/bin/roslyn/System.Diagnostics.FileVersionInfo.dll b/StockManMVC/bin/roslyn/System.Diagnostics.FileVersionInfo.dll new file mode 100644 index 0000000..77248bf Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Diagnostics.FileVersionInfo.dll differ diff --git a/StockManMVC/bin/roslyn/System.Diagnostics.Process.dll b/StockManMVC/bin/roslyn/System.Diagnostics.Process.dll new file mode 100644 index 0000000..e03db64 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Diagnostics.Process.dll differ diff --git a/StockManMVC/bin/roslyn/System.IO.Compression.dll b/StockManMVC/bin/roslyn/System.IO.Compression.dll new file mode 100644 index 0000000..f8468a6 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.IO.Compression.dll differ diff --git a/StockManMVC/bin/roslyn/System.IO.FileSystem.DriveInfo.dll b/StockManMVC/bin/roslyn/System.IO.FileSystem.DriveInfo.dll new file mode 100644 index 0000000..754677f Binary files /dev/null and b/StockManMVC/bin/roslyn/System.IO.FileSystem.DriveInfo.dll differ diff --git a/StockManMVC/bin/roslyn/System.IO.Pipes.dll b/StockManMVC/bin/roslyn/System.IO.Pipes.dll new file mode 100644 index 0000000..f0b233a Binary files /dev/null and b/StockManMVC/bin/roslyn/System.IO.Pipes.dll differ diff --git a/StockManMVC/bin/roslyn/System.Security.AccessControl.dll b/StockManMVC/bin/roslyn/System.Security.AccessControl.dll new file mode 100644 index 0000000..ea65f02 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Security.AccessControl.dll differ diff --git a/StockManMVC/bin/roslyn/System.Security.Claims.dll b/StockManMVC/bin/roslyn/System.Security.Claims.dll new file mode 100644 index 0000000..4e28e4c Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Security.Claims.dll differ diff --git a/StockManMVC/bin/roslyn/System.Security.Cryptography.Algorithms.dll b/StockManMVC/bin/roslyn/System.Security.Cryptography.Algorithms.dll new file mode 100644 index 0000000..fa8ad65 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Security.Cryptography.Algorithms.dll differ diff --git a/StockManMVC/bin/roslyn/System.Security.Cryptography.Encoding.dll b/StockManMVC/bin/roslyn/System.Security.Cryptography.Encoding.dll new file mode 100644 index 0000000..de1ec5e Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Security.Cryptography.Encoding.dll differ diff --git a/StockManMVC/bin/roslyn/System.Security.Cryptography.Primitives.dll b/StockManMVC/bin/roslyn/System.Security.Cryptography.Primitives.dll new file mode 100644 index 0000000..16b2446 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Security.Cryptography.Primitives.dll differ diff --git a/StockManMVC/bin/roslyn/System.Security.Cryptography.X509Certificates.dll b/StockManMVC/bin/roslyn/System.Security.Cryptography.X509Certificates.dll new file mode 100644 index 0000000..e6af960 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Security.Cryptography.X509Certificates.dll differ diff --git a/StockManMVC/bin/roslyn/System.Security.Principal.Windows.dll b/StockManMVC/bin/roslyn/System.Security.Principal.Windows.dll new file mode 100644 index 0000000..06601a1 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Security.Principal.Windows.dll differ diff --git a/StockManMVC/bin/roslyn/System.Text.Encoding.CodePages.dll b/StockManMVC/bin/roslyn/System.Text.Encoding.CodePages.dll new file mode 100644 index 0000000..0f2f447 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Text.Encoding.CodePages.dll differ diff --git a/StockManMVC/bin/roslyn/System.Threading.Thread.dll b/StockManMVC/bin/roslyn/System.Threading.Thread.dll new file mode 100644 index 0000000..c0271b0 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Threading.Thread.dll differ diff --git a/StockManMVC/bin/roslyn/System.ValueTuple.dll b/StockManMVC/bin/roslyn/System.ValueTuple.dll new file mode 100644 index 0000000..78a1851 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.ValueTuple.dll differ diff --git a/StockManMVC/bin/roslyn/System.Xml.ReaderWriter.dll b/StockManMVC/bin/roslyn/System.Xml.ReaderWriter.dll new file mode 100644 index 0000000..3d5103b Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Xml.ReaderWriter.dll differ diff --git a/StockManMVC/bin/roslyn/System.Xml.XPath.XDocument.dll b/StockManMVC/bin/roslyn/System.Xml.XPath.XDocument.dll new file mode 100644 index 0000000..ada40e0 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Xml.XPath.XDocument.dll differ diff --git a/StockManMVC/bin/roslyn/System.Xml.XPath.dll b/StockManMVC/bin/roslyn/System.Xml.XPath.dll new file mode 100644 index 0000000..86a25a3 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Xml.XPath.dll differ diff --git a/StockManMVC/bin/roslyn/System.Xml.XmlDocument.dll b/StockManMVC/bin/roslyn/System.Xml.XmlDocument.dll new file mode 100644 index 0000000..cf138d3 Binary files /dev/null and b/StockManMVC/bin/roslyn/System.Xml.XmlDocument.dll differ diff --git a/StockManMVC/bin/roslyn/csi.exe.config b/StockManMVC/bin/roslyn/csi.exe.config new file mode 100644 index 0000000..19d03cc --- /dev/null +++ b/StockManMVC/bin/roslyn/csi.exe.config @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/FontAwesome.4.7.0/Content/Content/font-awesome.css b/packages/FontAwesome.4.7.0/Content/Content/font-awesome.css new file mode 100644 index 0000000..ee906a8 --- /dev/null +++ b/packages/FontAwesome.4.7.0/Content/Content/font-awesome.css @@ -0,0 +1,2337 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-feed:before, +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper-pp:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-diamond:before { + content: "\f219"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-intersex:before, +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-genderless:before { + content: "\f22d"; +} +.fa-facebook-official:before { + content: "\f230"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-server:before { + content: "\f233"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-train:before { + content: "\f238"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-medium:before { + content: "\f23a"; +} +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-wheelchair-alt:before { + content: "\f29b"; +} +.fa-question-circle-o:before { + content: "\f29c"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.fa-pied-piper:before { + content: "\f2ae"; +} +.fa-first-order:before { + content: "\f2b0"; +} +.fa-yoast:before { + content: "\f2b1"; +} +.fa-themeisle:before { + content: "\f2b2"; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: "\f2b3"; +} +.fa-fa:before, +.fa-font-awesome:before { + content: "\f2b4"; +} +.fa-handshake-o:before { + content: "\f2b5"; +} +.fa-envelope-open:before { + content: "\f2b6"; +} +.fa-envelope-open-o:before { + content: "\f2b7"; +} +.fa-linode:before { + content: "\f2b8"; +} +.fa-address-book:before { + content: "\f2b9"; +} +.fa-address-book-o:before { + content: "\f2ba"; +} +.fa-vcard:before, +.fa-address-card:before { + content: "\f2bb"; +} +.fa-vcard-o:before, +.fa-address-card-o:before { + content: "\f2bc"; +} +.fa-user-circle:before { + content: "\f2bd"; +} +.fa-user-circle-o:before { + content: "\f2be"; +} +.fa-user-o:before { + content: "\f2c0"; +} +.fa-id-badge:before { + content: "\f2c1"; +} +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2"; +} +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: "\f2c3"; +} +.fa-quora:before { + content: "\f2c4"; +} +.fa-free-code-camp:before { + content: "\f2c5"; +} +.fa-telegram:before { + content: "\f2c6"; +} +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: "\f2c7"; +} +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9"; +} +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca"; +} +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb"; +} +.fa-shower:before { + content: "\f2cc"; +} +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: "\f2cd"; +} +.fa-podcast:before { + content: "\f2ce"; +} +.fa-window-maximize:before { + content: "\f2d0"; +} +.fa-window-minimize:before { + content: "\f2d1"; +} +.fa-window-restore:before { + content: "\f2d2"; +} +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f2d3"; +} +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: "\f2d4"; +} +.fa-bandcamp:before { + content: "\f2d5"; +} +.fa-grav:before { + content: "\f2d6"; +} +.fa-etsy:before { + content: "\f2d7"; +} +.fa-imdb:before { + content: "\f2d8"; +} +.fa-ravelry:before { + content: "\f2d9"; +} +.fa-eercast:before { + content: "\f2da"; +} +.fa-microchip:before { + content: "\f2db"; +} +.fa-snowflake-o:before { + content: "\f2dc"; +} +.fa-superpowers:before { + content: "\f2dd"; +} +.fa-wpexplorer:before { + content: "\f2de"; +} +.fa-meetup:before { + content: "\f2e0"; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/packages/FontAwesome.4.7.0/Content/Content/font-awesome.min.css b/packages/FontAwesome.4.7.0/Content/Content/font-awesome.min.css new file mode 100644 index 0000000..540440c --- /dev/null +++ b/packages/FontAwesome.4.7.0/Content/Content/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/packages/FontAwesome.4.7.0/Content/fonts/FontAwesome.otf b/packages/FontAwesome.4.7.0/Content/fonts/FontAwesome.otf new file mode 100644 index 0000000..401ec0f Binary files /dev/null and b/packages/FontAwesome.4.7.0/Content/fonts/FontAwesome.otf differ diff --git a/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.eot b/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.eot differ diff --git a/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.svg b/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.ttf b/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.ttf differ diff --git a/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.woff b/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.woff differ diff --git a/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.woff2 b/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/packages/FontAwesome.4.7.0/Content/fonts/fontawesome-webfont.woff2 differ diff --git a/packages/FontAwesome.4.7.0/FontAwesome.4.7.0.nupkg b/packages/FontAwesome.4.7.0/FontAwesome.4.7.0.nupkg new file mode 100644 index 0000000..488d23f Binary files /dev/null and b/packages/FontAwesome.4.7.0/FontAwesome.4.7.0.nupkg differ diff --git a/packages/FontAwesome.4.7.0/tools/install.ps1 b/packages/FontAwesome.4.7.0/tools/install.ps1 new file mode 100644 index 0000000..f70cd04 --- /dev/null +++ b/packages/FontAwesome.4.7.0/tools/install.ps1 @@ -0,0 +1,6 @@ +param($installPath, $toolsPath, $package, $project) + +foreach ($fontFile in $project.ProjectItems.Item("fonts").ProjectItems) +{ + $fontFile.Properties.Item("BuildAction").Value = 2; +} \ No newline at end of file diff --git a/packages/MVCGrid.Net.1.0.0.61/Content/Views/web.config.transform b/packages/MVCGrid.Net.1.0.0.61/Content/Views/web.config.transform new file mode 100644 index 0000000..64af019 --- /dev/null +++ b/packages/MVCGrid.Net.1.0.0.61/Content/Views/web.config.transform @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/packages/MVCGrid.Net.1.0.0.61/Content/web.config.transform b/packages/MVCGrid.Net.1.0.0.61/Content/web.config.transform new file mode 100644 index 0000000..dc09b33 --- /dev/null +++ b/packages/MVCGrid.Net.1.0.0.61/Content/web.config.transform @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/packages/MVCGrid.Net.1.0.0.61/MVCGrid.Net.1.0.0.61.nupkg b/packages/MVCGrid.Net.1.0.0.61/MVCGrid.Net.1.0.0.61.nupkg new file mode 100644 index 0000000..495f6c6 Binary files /dev/null and b/packages/MVCGrid.Net.1.0.0.61/MVCGrid.Net.1.0.0.61.nupkg differ diff --git a/packages/MVCGrid.Net.1.0.0.61/Tools/Install.ps1 b/packages/MVCGrid.Net.1.0.0.61/Tools/Install.ps1 new file mode 100644 index 0000000..cad5127 --- /dev/null +++ b/packages/MVCGrid.Net.1.0.0.61/Tools/Install.ps1 @@ -0,0 +1,55 @@ + param($installPath, $toolsPath, $package, $project) + + $templateFilename = "MVCGridConfig.cs.pp" + $codeFilename = "MVCGridConfig.cs" + + +try { + $appStartFolderProjectItem = $project.ProjectItems.Item("App_Start") + $appStartFolderPath = $appStartFolderProjectItem.FileNames(1) + + Write-Host "AppStart: ($appStartFolderPath)" +} +catch { + # No App_Data folder + Write-Host "No App_Data folder found" + exit +} + +try{ + $targetPath = Join-Path $appStartFolderPath $codeFilename + If (Test-Path $targetPath){ + Write-Host "File already exists ($targetPath)" + exit + } +} +catch{ + Write-Host "Error checking for file" + exit +} + +try{ + $rootNamespace = $project.Properties.Item("RootNamespace").Value.ToString() + Write-Host "rootNamespace: ($rootNamespace)" +} +catch{ + Write-Host "Error getting root namespace" + exit +} + +try { + $sourcePath = Join-Path $toolsPath $templateFilename + Write-Host "sourcePath: ($sourcePath)" + + $text = Get-Content $sourcePath -Raw + $text = $text.replace("`$rootnamespace$",$rootNamespace) + + #this method doesn't add an extra line break + [io.file]::writealltext($targetPath, $text) + + $appStartFolderProjectItem.ProjectItems.AddFromFile($targetPath) +} +catch { + Write-Host "Error adding file: " + $_ + exit +} diff --git a/packages/MVCGrid.Net.1.0.0.61/Tools/MVCGridConfig.cs.pp b/packages/MVCGrid.Net.1.0.0.61/Tools/MVCGridConfig.cs.pp new file mode 100644 index 0000000..dca4a2d --- /dev/null +++ b/packages/MVCGrid.Net.1.0.0.61/Tools/MVCGridConfig.cs.pp @@ -0,0 +1,48 @@ +[assembly: WebActivatorEx.PreApplicationStartMethod(typeof($rootnamespace$.MVCGridConfig), "RegisterGrids")] + +namespace $rootnamespace$ +{ + using System; + using System.Web; + using System.Web.Mvc; + using System.Linq; + using System.Collections.Generic; + + using MVCGrid.Models; + using MVCGrid.Web; + + public static class MVCGridConfig + { + public static void RegisterGrids() + { + /* + MVCGridDefinitionTable.Add("UsageExample", new MVCGridBuilder() + .WithAuthorizationType(AuthorizationType.AllowAnonymous) + .AddColumns(cols => + { + // Add your columns here + cols.Add().WithColumnName("UniqueColumnName") + .WithHeaderText("Any Header") + .WithValueExpression(i => i.YourProperty); // use the Value Expression to return the cell text for this column + cols.Add().WithColumnName("UrlExample") + .WithHeaderText("Edit") + .WithValueExpression((i, c) => c.UrlHelper.Action("detail", "demo", new { id = i.Id })); + }) + .WithRetrieveDataMethod((context) => + { + // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. + // Use Entity Framework, a module from your IoC Container, or any other method. + // Return QueryResult object containing IEnumerable + + return new QueryResult() + { + Items = new List(), + TotalRecords = 0 // if paging is enabled, return the total number of records of all pages + }; + + }) + ); + */ + } + } +} \ No newline at end of file diff --git a/packages/MVCGrid.Net.1.0.0.61/lib/net40/MVCGrid.XML b/packages/MVCGrid.Net.1.0.0.61/lib/net40/MVCGrid.XML new file mode 100644 index 0000000..e578e72 --- /dev/null +++ b/packages/MVCGrid.Net.1.0.0.61/lib/net40/MVCGrid.XML @@ -0,0 +1,699 @@ + + + + MVCGrid + + + + + Header text to display for the current column, if different from ColumnName. + + + + + A unique name for this column + + + + + Enables sorting on this column + + + + + Disables html encoding on the data for the current cell. Turn this off if your ValueExpression or ValueTemplate returns HTML. + + + + + Enables filtering on this column + + + + + Indicates whether column is visible. + + + + + Object to pass to QueryOptions when this column is sorted on. Only specify if different from ColumnName + + + + + Gets or sets a value indicating whether the column visibility can be changed. + + + + + This is the method that will actually query the data to populate the grid. Use entity framework, a module from you IoC container, direct SQL queries, etc. to get the data. Inside the providee GridContext there is a QueryOptions object which will be populated with the currently requested sorting, paging, and filtering options which you must take into account. See the QueryOptions documentation below. You must return a QueryResult object which takes an enumerable of your type and a count of the total number of records which must be provided if paging is enabled. + + + + + Use this to specify a custom css class based on data for the current row + + + + + Use this to specify a custom css class based on data for the current row + + + + + A prefix to add to all query string parameters for this grid, for when there are more than 1 grids on the same page + + + + + Enables data loading when the page is first loaded so that the initial ajax request can be skipped. + + + + + Specifies if the data should be loaded as soon as the page loads + + + + + Enables paging on the grid + + + + + Enables paging on the grid + + + + + Enables paging on the grid + + + + + Number of items to display on each page + + + + + Enables sorting on the grid. Note, sorting must also be enabled on each column where sorting is wanted + + + + + Enables sorting on the grid. Note, sorting must also be enabled on each column where sorting is wanted + + + + + Enables sorting on the grid. Note, sorting must also be enabled on each column where sorting is wanted + + + + + The default column to sort by when no sort is specified + + + + + The default order to sort by when no sort is specified + + + + + Text to display when there are no results. + + + + + Name of function to call before ajax call begins + + + + + Name of function to call before ajax call ends + + + + + Enables filtering on the grid. Note, filtering must also be enabled on each column where filtering is wanted + + + + + Sets the default rendering engine name (which should match a name from the RenderingEngines property) which + will be used when no rendering engine name is specified in the request + + Name of the rendering engine. + + + + + Adds a rendering engine to the list of configured rendering engines. + + A unique name. + The type. + + + + + Adds a rendering engine to the list of configured rendering engines. + + A unique name. + The type. + + + + + Add an arbitrary additional settings + + + + + Remove an additional setting + + + + + The rendering mode to use for this grid. By default it will use the RenderingEngine rendering mode. If you want to use a custom Razor view to display your grid, change this to Controller + + + + + When RenderingMode is set to Controller, this is the path to the razor view to use. + + + + + When RenderingMode is set to Controller, this is the path to the container razor view to use. + + + + + HTML to display in place of the grid when an error occurs + + + + + Add a name to additional query options which are additional parameters that can be passed from client to server side + + + + + Names of additional parameters that can be passed from client to server side + + + + + Names of page parameters that will be passed from the view + + + + + Allows changing of page size from client-side + + + + + Sets the maximum of items per page allowed when AllowChangingPageSize is enabled + + + + + Indicated the authorization type. Anonymous access is the default. + + + + + Text to display on the "next" button. + + + + + + + Text to display on the "previous" button. + + + + + + + Summary text to display in grid footer. Defaults to "Showing {0} to {1} of {2} entries" + {0} = first record number shown on page + {1} = last record number shown on page + {2} = total number of records on all pages + + + + + + + Text to display when query is processed + + + + + + + A unique name for this column + + + + + Header text to display for the current column, if different from ColumnName. + + + + + Enables sorting on this column + + + + + Disables html encoding on the data for the current cell. Turn this off if your ValueExpression or ValueTemplate returns HTML. + + + + + This is how to specify the contents of the current cell. If this contains HTML, set HTMLEncode to false + + + + + This is how to specify the contents of the current cell. If this contains HTML, set HTMLEncode to false + + + + + This is how to specify the contents of the current cell when used in an export file, if different that ValueExpression + + + + + This is how to specify the contents of the current cell when used in an export file, if different that ValueExpression + + + + + Use this to return a custom css class based on data for the current cell + + + + + Use this to return a custom css class based on data for the current cell + + + + + Enables filtering on this column + + + + + Indicates whether column is visible. + + + + + Indicates whether column is visible. + + + + + Template for formatting cell value + + + + + Template for formatting cell value + + + + + Object to pass to QueryOptions when this column is sorted on. Only specify if different from ColumnName + + + + + Gets or sets a value indicating whether the column visibility can be changed. + + + + + Arbitrary settings for this context + + + + + Paging data. Will be null if paging should not be displayed + + + + + A prefix to add to all query string parameters for this grid, for when there are more than 1 grids on the same page + + + + + Enables data loading when the page is first loaded so that the initial ajax request can be skipped. + + + + + Specified if the data should be loaded as soon as the page loads + + + + + Enables paging on the grid + + + + + Number of items to display on each page + + + + + Enables sorting on the grid. Note, sorting must also be enabled on each column where sorting is wanted + + + + + The default column to sort by when no sort is specified + + + + + The default order to sort by when no sort is specified + + + + + Text to display when there are no results + + + + + Text to display on the "next" button + + + + + Text to display on the "previous" button + + + + + Summary text to display in grid footer + + + + + Text to display when query is processed + + + + + Name of function to call before ajax call begins + + + + + Name of function to call before ajax call ends + + + + + Enables filtering on the grid. Note, filtering must also be enabled on each column where filtering is wanted + + + + + Arbitrary additional settings + + + + + The rendering mode to use for this grid. By default it will use the RenderingEngine rendering mode. If you want to use a custom Razor view to display your grid, change this to Controller + + + + + When RenderingMode is set to Controller, this is the path to the razor view to use. + + + + + When RenderingMode is set to Controller, this is the path to the container razor view to use. + + + + + HTML to display in place of the grid when an error occurs + + + + + Names of additional parameters that can be passed from client to server side + + + + + Names of page parameters that will be passed from the view + + + + + Allows changing of page size from client-side + + + + + Sets the maximum of items per page allowed when AllowChangingPageSize is enabled + + + + + Indicated the authorization type. Anonymous access is the default. + + + + + The list of configured rendering engines availble for this grid + + + The rendering engines, each with a unique name + + + + + The unique rendering engine name to use when none is specified in the request + + + The default name of the rendering engine. + + + + + A unique name for this column + + + + + Header text to display for the current column, if different from ColumnName. + + + + + Template for formatting cell value + + + + + This is how to specify the contents of the current cell. If this contains HTML, set HTMLEncode to false + + + + + This is how to specify the contents of the current cell when used in an export file, if different that ValueExpression + + + + + Use this to return a custom css class based on data for the current cell + + + + + Enables sorting on this column + + + + + Disables html encoding on the data for the current cell. Turn this off if your ValueExpression or ValueTemplate returns HTML. + + + + + Enables filtering on this column + + + + + Indicates whether column is visible. + + + + + Object to pass to QueryOptions when this column is sorted on. Only specify if different from ColumnName + + + + + Gets or sets a value indicating whether the column visibility can be changed. + + + + + This is the method that will actually query the data to populate the grid. Use entity framework, a module from you IoC container, direct SQL queries, etc. to get the data. Inside the providee GridContext there is a QueryOptions object which will be populated with the currently requested sorting, paging, and filtering options which you must take into account. See the QueryOptions documentation below. You must return a QueryResult object which takes an enumerable of your type and a count of the total number of records which must be provided if paging is enabled. + + + + + Use this to specify a custom css class based on data for the current row + + + + + A prefix to add to all query string parameters for this grid, for when there are more than 1 grids on the same page + + + + + Enables data loading when the page is first loaded so that the initial ajax request can be skipped. + + + + + Specified if the data should be loaded as soon as the page loads + + + + + Enables paging on the grid + + + + + Number of items to display on each page + + + + + Enables sorting on the grid. Note, sorting must also be enabled on each column where sorting is wanted + + + + + The default column to sort by when no sort is specified + + + + + The default order to sort by when no sort is specified + + + + + Enables filtering on the grid. Note, filtering must also be enabled on each column where filtering is wanted + + + + + Text to display when there are no results. + + + + + Text to display on the "next" button. + + + + + Text to display on the "previous" button. + + + + + Summary text to display in grid footer + + + + + Text to display when query is processed + + + + + Name of function to call before ajax call begins + + + + + Name of function to call before ajax call ends + + + + + Arbitrary additional settings + + + + + The rendering mode to use for this grid. By default it will use the RenderingEngine rendering mode. If you want to use a custom Razor view to display your grid, change this to Controller + + + + + When RenderingMode is set to Controller, this is the path to the razor view to use. + + + + + When RenderingMode is set to Controller, this is the path to the container razor view to use. + + + + + HTML to display in place of the grid when an error occurs + + + + + Names of additional parameters that can be passed from client to server side + + + + + Names of page parameters that will be passed from the view + + + + + Allows changing of page size from client-side + + + + + Sets the maximum of items per page allowed when AllowChangingPageSize is enabled + + + + + Indicated the authorization type. Anonymous access is the default. + + + + diff --git a/packages/MVCGrid.Net.1.0.0.61/lib/net40/MVCGrid.dll b/packages/MVCGrid.Net.1.0.0.61/lib/net40/MVCGrid.dll new file mode 100644 index 0000000..38f6863 Binary files /dev/null and b/packages/MVCGrid.Net.1.0.0.61/lib/net40/MVCGrid.dll differ diff --git a/packages/MVCGrid.Net.1.0.0.61/readme.txt b/packages/MVCGrid.Net.1.0.0.61/readme.txt new file mode 100644 index 0000000..c63f774 --- /dev/null +++ b/packages/MVCGrid.Net.1.0.0.61/readme.txt @@ -0,0 +1,12 @@ +MVCGRID.NET + +To complete installation, please add the following javascript reference to your _Layout: + + + + + + + +For more getting started info, see here: +http://mvcgrid.net/gettingstarted \ No newline at end of file diff --git a/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7.nupkg b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7.nupkg new file mode 100644 index 0000000..c1cfe7f Binary files /dev/null and b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7.nupkg differ diff --git a/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/build/net45/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/build/net45/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props new file mode 100644 index 0000000..7443672 --- /dev/null +++ b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/build/net45/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props @@ -0,0 +1,67 @@ + + + + roslyn\%(RecursiveDir)%(Filename)%(Extension) + + + + + + bin\roslyn\%(RecursiveDir)%(Filename)%(Extension) + IncludeRoslynCompilerFilesToFilesForPackagingFromProject + Run + + + + + + + + + + + + + + + + + + + + + + + + ().FirstOrDefault(); + Log.LogMessage("ExecutablePath is {0}", (string)mo["ExecutablePath"]); + if(mo != null && string.Compare((string)mo["ExecutablePath"], ImagePath, StringComparison.OrdinalIgnoreCase) > 0) + { + p.Kill(); + Log.LogMessage("{0} is killed", (string)mo["ExecutablePath"]); + break; + } + } + } + } + } + catch (Exception ex) + { + Log.LogErrorFromException(ex); + } + return true; + ]]> + + + + \ No newline at end of file diff --git a/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/content/net45/web.config.install.xdt b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/content/net45/web.config.install.xdt new file mode 100644 index 0000000..0b7bc6d --- /dev/null +++ b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/content/net45/web.config.install.xdt @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/content/net45/web.config.uninstall.xdt b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/content/net45/web.config.uninstall.xdt new file mode 100644 index 0000000..5733481 --- /dev/null +++ b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/content/net45/web.config.uninstall.xdt @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/content/net46/web.config.install.xdt b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/content/net46/web.config.install.xdt new file mode 100644 index 0000000..8f95055 --- /dev/null +++ b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/content/net46/web.config.install.xdt @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/content/net46/web.config.uninstall.xdt b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/content/net46/web.config.uninstall.xdt new file mode 100644 index 0000000..5733481 --- /dev/null +++ b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/content/net46/web.config.uninstall.xdt @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/lib/net45/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/lib/net45/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll new file mode 100644 index 0000000..42e3638 Binary files /dev/null and b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/lib/net45/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll differ diff --git a/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/lib/net45/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/lib/net45/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml new file mode 100644 index 0000000..1a49351 --- /dev/null +++ b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/lib/net45/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml @@ -0,0 +1,40 @@ + + + + Microsoft.CodeDom.Providers.DotNetCompilerPlatform + + + + + Provides access to instances of the .NET Compiler Platform C# code generator and code compiler. + + + + + Default Constructor + + + + + Gets an instance of the .NET Compiler Platform C# code compiler. + + An instance of the .NET Compiler Platform C# code compiler + + + + Provides access to instances of the .NET Compiler Platform VB code generator and code compiler. + + + + + Default Constructor + + + + + Gets an instance of the .NET Compiler Platform VB code compiler. + + An instance of the .NET Compiler Platform VB code compiler + + + diff --git a/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/tools/net45/install.ps1 b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/tools/net45/install.ps1 new file mode 100644 index 0000000..cda21d9 --- /dev/null +++ b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/tools/net45/install.ps1 @@ -0,0 +1,271 @@ +# Copyright (c) .NET Foundation. All rights reserved. +# Licensed under the MIT license. See LICENSE file in the project root for full license information. + +param($installPath, $toolsPath, $package, $project) + +$compilerPackageName = 'Microsoft.Net.Compilers' +$roslynSubFolder = 'roslyn' + +if ($project -eq $null) { + $project = Get-Project +} + +$libDirectory = Join-Path $installPath 'lib\net45' +$projectRoot = $project.Properties.Item('FullPath').Value +$binDirectory = Join-Path $projectRoot 'bin' + +# We need to copy the provider assembly into the bin\ folder, otherwise +# Microsoft.VisualStudio.Web.Host.exe cannot find the assembly. +# However, users will see the error after they clean solutions. +New-Item $binDirectory -type directory -force | Out-Null +Copy-Item $libDirectory\* $binDirectory -force | Out-Null + +# For Web Site, we need to copy the Roslyn toolset into +# the applicaiton's bin folder. +# For Web Applicaiton project, this is done in csproj. +if ($project.Type -eq 'Web Site') { + $packageDirectory = Split-Path $installPath + + # Get the installed Microsoft.Net.Compilers package. + $compilerPackage = Get-Package -ProjectName $project.Name | Where-Object {$_.Id -eq $compilerPackageName} + if ($compilerPackage -eq $null) + { + Write-Host "Package $compilerPackageName is not installed correctly." + Write-Host 'The install.ps1 did not complete.' + break + } + + if($compilerPackage.Versions -eq $null) + { + $compilerVersion = $compilerPackage.Version + } + else + { + $compilerVersion = @($compilerPackage.Versions)[0] + } + + $compilerPackageFolderName = $compilerPackage.Id + "." + $compilerVersion + $compilerPackageDirectory = Join-Path $packageDirectory $compilerPackageFolderName + if ((Get-Item $compilerPackageDirectory) -isnot [System.IO.DirectoryInfo]) + { + Write-Host "The install.ps1 cannot find the installation location of package $compilerPackageName, or the pakcage is not installed correctly." + Write-Host 'The install.ps1 did not complete.' + break + } + + $compilerPackageToolsDirectory = Join-Path $compilerPackageDirectory 'tools' + $roslynSubDirectory = Join-Path $binDirectory $roslynSubFolder + New-Item $roslynSubDirectory -type directory -force | Out-Null + Copy-Item $compilerPackageToolsDirectory\* $roslynSubDirectory -force | Out-Null + + # Generate a .refresh file for each dll/exe file. + Push-Location + Set-Location $projectRoot + $relativeAssemblySource = Resolve-Path -relative $compilerPackageToolsDirectory + Pop-Location + + Get-ChildItem -Path $roslynSubDirectory | ` + Foreach-Object { + if (($_.Extension -eq ".dll") -or ($_.Extension -eq ".exe")) { + $refreshFile = $_.FullName + $refreshFile += ".refresh" + $refreshContent = Join-Path $relativeAssemblySource $_.Name + Set-Content $refreshFile $refreshContent + } + } +} +# SIG # Begin signature block +# MIIkCAYJKoZIhvcNAQcCoIIj+TCCI/UCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAf2MwHY6B6NpA8 +# BGxEha31/ErMnwdzPRjp4gsxT9P5T6CCDZMwggYRMIID+aADAgECAhMzAAAAjoeR +# pFcaX8o+AAAAAACOMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMTYxMTE3MjIwOTIxWhcNMTgwMjE3MjIwOTIxWjCBgzEL +# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v +# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q +# UjEeMBwGA1UEAxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMIIBIjANBgkqhkiG9w0B +# AQEFAAOCAQ8AMIIBCgKCAQEA0IfUQit+ndnGetSiw+MVktJTnZUXyVI2+lS/qxCv +# 6cnnzCZTw8Jzv23WAOUA3OlqZzQw9hYXtAGllXyLuaQs5os7efYjDHmP81LfQAEc +# wsYDnetZz3Pp2HE5m/DOJVkt0slbCu9+1jIOXXQSBOyeBFOmawJn+E1Zi3fgKyHg +# 78CkRRLPA3sDxjnD1CLcVVx3Qv+csuVVZ2i6LXZqf2ZTR9VHCsw43o17lxl9gtAm +# +KWO5aHwXmQQ5PnrJ8by4AjQDfJnwNjyL/uJ2hX5rg8+AJcH0Qs+cNR3q3J4QZgH +# uBfMorFf7L3zUGej15Tw0otVj1OmlZPmsmbPyTdo5GPHzwIDAQABo4IBgDCCAXww +# HwYDVR0lBBgwFgYKKwYBBAGCN0wIAQYIKwYBBQUHAwMwHQYDVR0OBBYEFKvI1u2y +# FdKqjvHM7Ww490VK0Iq7MFIGA1UdEQRLMEmkRzBFMQ0wCwYDVQQLEwRNT1BSMTQw +# MgYDVQQFEysyMzAwMTIrYjA1MGM2ZTctNzY0MS00NDFmLWJjNGEtNDM0ODFlNDE1 +# ZDA4MB8GA1UdIwQYMBaAFEhuZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEsw +# SaBHoEWGQ2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0Nv +# ZFNpZ1BDQTIwMTFfMjAxMS0wNy0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsG +# AQUFBzAChkVodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01p +# Y0NvZFNpZ1BDQTIwMTFfMjAxMS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkq +# hkiG9w0BAQsFAAOCAgEARIkCrGlT88S2u9SMYFPnymyoSWlmvqWaQZk62J3SVwJR +# avq/m5bbpiZ9CVbo3O0ldXqlR1KoHksWU/PuD5rDBJUpwYKEpFYx/KCKkZW1v1rO +# qQEfZEah5srx13R7v5IIUV58MwJeUTub5dguXwJMCZwaQ9px7eTZ56LadCwXreUM +# tRj1VAnUvhxzzSB7pPrI29jbOq76kMWjvZVlrkYtVylY1pLwbNpj8Y8zon44dl7d +# 8zXtrJo7YoHQThl8SHywC484zC281TllqZXBA+KSybmr0lcKqtxSCy5WJ6PimJdX +# jrypWW4kko6C4glzgtk1g8yff9EEjoi44pqDWLDUmuYx+pRHjn2m4k5589jTajMW +# UHDxQruYCen/zJVVWwi/klKoCMTx6PH/QNf5mjad/bqQhdJVPlCtRh/vJQy4njpI +# BGPveJiiXQMNAtjcIKvmVrXe7xZmw9dVgh5PgnjJnlQaEGC3F6tAE5GusBnBmjOd +# 7jJyzWXMT0aYLQ9RYB58+/7b6Ad5B/ehMzj+CZrbj3u2Or2FhrjMvH0BMLd7Hald +# G73MTRf3bkcz1UDfasouUbi1uc/DBNM75ePpEIzrp7repC4zaikvFErqHsEiODUF +# he/CBAANa8HYlhRIFa9+UrC4YMRStUqCt4UqAEkqJoMnWkHevdVmSbwLnHhwCbww +# ggd6MIIFYqADAgECAgphDpDSAAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5 +# MDlaFw0yNjA3MDgyMTA5MDlaMH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIw +# MTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQ +# TTS68rZYIZ9CGypr6VpQqrgGOBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULT +# iQ15ZId+lGAkbK+eSZzpaF7S35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYS +# L+erCFDPs0S3XdjELgN1q2jzy23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494H +# DdVceaVJKecNvqATd76UPe/74ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZ +# PrGMXeiJT4Qa8qEvWeSQOy2uM1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5 +# bmR/U7qcD60ZI4TL9LoDho33X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGS +# rhwjp6lm7GEfauEoSZ1fiOIlXdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADh +# vKwCgl/bwBWzvRvUVUvnOaEP6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON +# 7E1JMKerjt/sW5+v/N2wZuLBl4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xc +# v3coKPHtbcMojyyPQDdPweGFRInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqw +# iBfenk70lrC8RqBsmNLg1oiMCwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMC +# AQAwHQYDVR0OBBYEFEhuZOVQBdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQM +# HgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1Ud +# IwQYMBaAFHItOgIxkEO5FAVO4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0 +# dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0Nl +# ckF1dDIwMTFfMjAxMV8wM18yMi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUF +# BzAChkJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0Nl +# ckF1dDIwMTFfMjAxMV8wM18yMi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGC +# Ny4DMIGDMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtp +# b3BzL2RvY3MvcHJpbWFyeWNwcy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcA +# YQBsAF8AcABvAGwAaQBjAHkAXwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZI +# hvcNAQELBQADggIBAGfyhqWY4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4s +# PvjDctFtg/6+P+gKyju/R6mj82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKL +# UtCw/WvjPgcuKZvmPRul1LUdd5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7 +# pKkFDJvtaPpoLpWgKj8qa1hJYx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft +# 0N3zDq+ZKJeYTQ49C/IIidYfwzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4 +# MnEnGn+x9Cf43iw6IGmYslmJaG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxv +# FX1Fp3blQCplo8NdUmKGwx1jNpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG +# 0QaxdR8UvmFhtfDcxhsEvt9Bxw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf +# 0AApxbGbpT9Fdx41xtKiop96eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkY +# S//WsyNodeav+vyL6wuA6mk7r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrv +# QQqxP/uozKRdwaGIm1dxVk5IRcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIV +# yzCCFccCAQEwgZUwfjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x +# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv +# bjEoMCYGA1UEAxMfTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAA +# AI6HkaRXGl/KPgAAAAAAjjANBglghkgBZQMEAgEFAKCBujAZBgkqhkiG9w0BCQMx +# DAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkq +# hkiG9w0BCQQxIgQgSg+xMLfX+kOK+WSk1sAaNhr2nn7cf9HH7VILxcupl4AwTgYK +# KwYBBAGCNwIBDDFAMD6gJIAiAE0AaQBjAHIAbwBzAG8AZgB0ACAAQQBTAFAALgBO +# AEUAVKEWgBRodHRwOi8vd3d3LmFzcC5uZXQvIDANBgkqhkiG9w0BAQEFAASCAQBJ +# 2srUH6ry0PZw/mwC2en+IUqnrlK4reDM1Leln+Jq+pZNIzn+JTVU3Qx7Tw2Ycmvp +# XAPdTL2h1VlOEcqKJwrqg5U2PWlVuZ7PgpGkO8sIHRrx30G0hd7oFgjQhAgdYEEg +# YHpX7l50sH8Rt08dV5xKTNDCisUQl4GZUfWqCawhxVAY3nVXOEyexNnNX+TsWNmO +# g6LiCObgXim65QiCyWk4P6vmPn8+/0m/rlw7jaMK/OYhXoInBtEvRtQqCRcke5SS +# bwn2d2cw5ueP/EzAa4E0zSH0FR4QJz5I5saMGLkHhYqaqGELSFc/d23ADld9uhIz +# kVQ/uTVew5RxZSl8xAMDoYITSTCCE0UGCisGAQQBgjcDAwExghM1MIITMQYJKoZI +# hvcNAQcCoIITIjCCEx4CAQMxDzANBglghkgBZQMEAgEFADCCAToGCyqGSIb3DQEJ +# EAEEoIIBKQSCASUwggEhAgEBBgorBgEEAYRZCgMBMDEwDQYJYIZIAWUDBAIBBQAE +# IKcYLcTj8KrY9Wl1mN+YWdtnybjNpXeO4vqoq6mJKe9eAgZZkiBITBgYEzIwMTcw +# ODE1MjAxMDM5LjU5N1owBIACAfSggbmkgbYwgbMxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1PUFIxJzAlBgNVBAsTHm5DaXBo +# ZXIgRFNFIEVTTjoxNDhDLUM0QjktMjA2NjElMCMGA1UEAxMcTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgU2VydmljZaCCDs8wggZxMIIEWaADAgECAgphCYEqAAAAAAACMA0G +# CSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv +# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 +# aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3Jp +# dHkgMjAxMDAeFw0xMDA3MDEyMTM2NTVaFw0yNTA3MDEyMTQ2NTVaMHwxCzAJBgNV +# BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w +# HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29m +# dCBUaW1lLVN0YW1wIFBDQSAyMDEwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +# CgKCAQEAqR0NvHcRijog7PwTl/X6f2mUa3RUENWlCgCChfvtfGhLLF/Fw+Vhwna3 +# PmYrW/AVUycEMR9BGxqVHc4JE458YTBZsTBED/FgiIRUQwzXTbg4CLNC3ZOs1nMw +# VyaCo0UN0Or1R4HNvyRgMlhgRvJYR4YyhB50YWeRX4FUsc+TTJLBxKZd0WETbijG +# GvmGgLvfYfxGwScdJGcSchohiq9LZIlQYrFd/XcfPfBXday9ikJNQFHRD5wGPmd/ +# 9WbAA5ZEfu/QS/1u5ZrKsajyeioKMfDaTgaRtogINeh4HLDpmc085y9Euqf03GS9 +# pAHBIAmTeM38vMDJRF1eFpwBBU8iTQIDAQABo4IB5jCCAeIwEAYJKwYBBAGCNxUB +# BAMCAQAwHQYDVR0OBBYEFNVjOlyKMZDzQ3t8RhvFM2hahW1VMBkGCSsGAQQBgjcU +# AgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8G +# A1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeG +# RWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jv +# b0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUH +# MAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2Vy +# QXV0XzIwMTAtMDYtMjMuY3J0MIGgBgNVHSABAf8EgZUwgZIwgY8GCSsGAQQBgjcu +# AzCBgTA9BggrBgEFBQcCARYxaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL1BLSS9k +# b2NzL0NQUy9kZWZhdWx0Lmh0bTBABggrBgEFBQcCAjA0HjIgHQBMAGUAZwBhAGwA +# XwBQAG8AbABpAGMAeQBfAFMAdABhAHQAZQBtAGUAbgB0AC4gHTANBgkqhkiG9w0B +# AQsFAAOCAgEAB+aIUQ3ixuCYP4FxAz2do6Ehb7Prpsz1Mb7PBeKp/vpXbRkws8LF +# Zslq3/Xn8Hi9x6ieJeP5vO1rVFcIK1GCRBL7uVOMzPRgEop2zEBAQZvcXBf/XPle +# FzWYJFZLdO9CEMivv3/Gf/I3fVo/HPKZeUqRUgCvOA8X9S95gWXZqbVr5MfO9sp6 +# AG9LMEQkIjzP7QOllo9ZKby2/QThcJ8ySif9Va8v/rbljjO7Yl+a21dA6fHOmWaQ +# jP9qYn/dxUoLkSbiOewZSnFjnXshbcOco6I8+n99lmqQeKZt0uGc+R38ONiU9Mal +# CpaGpL2eGq4EQoO4tYCbIjggtSXlZOz39L9+Y1klD3ouOVd2onGqBooPiRa6YacR +# y5rYDkeagMXQzafQ732D8OE7cQnfXXSYIghh2rBQHm+98eEA3+cxB6STOvdlR3jo +# +KhIq/fecn5ha293qYHLpwmsObvsxsvYgrRyzR30uIUBHoD7G4kqVDmyW9rIDVWZ +# eodzOwjmmC3qjeAzLhIp9cAvVCch98isTtoouLGp25ayp0Kiyc8ZQU3ghvkqmqMR +# ZjDTu3QyS99je/WZii8bxyGvWbWu3EQ8l1Bx16HSxVXjad5XwdHeMMD9zOZN+w2/ +# XU/pnR4ZOC+8z1gFLu8NoFA12u8JJxzVs341Hgi62jbb01+P3nSISRIwggTaMIID +# wqADAgECAhMzAAAAtEM6HP62ulKJAAAAAAC0MA0GCSqGSIb3DQEBCwUAMHwxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv +# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTE2MDkwNzE3NTY1OFoXDTE4MDkw +# NzE3NTY1OFowgbMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw +# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x +# DTALBgNVBAsTBE1PUFIxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVTTjoxNDhDLUM0 +# QjktMjA2NjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC +# ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOCBT7u10TA6P4MAt8xWn/eb +# rLqzXWQRHoLWetfuIPuz0QgBY5dXp8LiTFaotVfboMbfs9EYsR5+kawZGVFtc/6e +# LW0kQiDEyO9GadBvHExhapQzD5Q+26JvJSq/GdLOAzpSFYBFZRv9z7X/N7JoZpll +# re7/voFNQ54LeAnWKo89irQHM9mwUCRR73/1JNQVDI92GNhWvLVtoyl02HUHSEAZ +# jmYYkQICcBtB2/knoRl1xpao+kEvu3rFNKYwoJeTxxpsAFqCtowAZ5LLzE3SbKnj +# xF55CwGVrqikuSL++UVeP30ZG2GcN3TZo1HF7kjZVDMUg1+y5w97sB/Jl76ZhXEC +# AwEAAaOCARswggEXMB0GA1UdDgQWBBQMk6tF1GwLdy/zK1fz6STEhwf0XzAfBgNV +# HSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBHhkVo +# dHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNUaW1T +# dGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAC +# hj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0YVBD +# QV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUF +# BwMIMA0GCSqGSIb3DQEBCwUAA4IBAQACtWFboKfSaqwmL7bCNKN0+6h7kLGCLaiJ +# El2k9oILWT0n53odeSz4y3LPR2vvb97rkm3ur/teoZGEeONfUXvElzHgUI3tupn3 +# iCq/UWriI+Q3R91m4sWFCOz+dXHrem1JiSUhHZ2OFuRYpOaolbWbtJOhiiy4nCE6 +# vAFRH5jgn/Pt6lDMuzeEKWrwImylT64TEXlmZHAnowz6tN5Mu1B+xJ9/6YFRBN6u +# FF/mDgwQgbpGrDtiEue10Qow8NMp7PrTcDFuCnokUcIi5g4it0NRqlNVIvUktefT +# dXgpoTpbaQrgrXyZz5+0kigHfqpwxDKGW0oO2ES29T5nH3nD8itToYIDeDCCAmAC +# AQEwgeOhgbmkgbYwgbMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xDTALBgNVBAsTBE1PUFIxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVTTjoxNDhD +# LUM0QjktMjA2NjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj +# ZaIlCgEBMAkGBSsOAwIaBQADFQAHwJWXri5ObsnTdfbZiVGYiyBtOqCBwjCBv6SB +# vDCBuTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UE +# CxMETU9QUjEnMCUGA1UECxMebkNpcGhlciBOVFMgRVNOOjRERTktMEM1RS0zRTA5 +# MSswKQYDVQQDEyJNaWNyb3NvZnQgVGltZSBTb3VyY2UgTWFzdGVyIENsb2NrMA0G +# CSqGSIb3DQEBBQUAAgUA3T2mTDAiGA8yMDE3MDgxNTE2NTY0NFoYDzIwMTcwODE2 +# MTY1NjQ0WjB2MDwGCisGAQQBhFkKBAExLjAsMAoCBQDdPaZMAgEAMAkCAQACAUcC +# Af8wBwIBAAICGlowCgIFAN0+98wCAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYB +# BAGEWQoDAaAKMAgCAQACAwehIKEKMAgCAQACAwehIDANBgkqhkiG9w0BAQUFAAOC +# AQEAjmdQstcKWzH1e0NXriq3/QT/4WcplPQealspljd2/E5rHg6PlOVcU/YbjZF2 +# RzS0M+hlDIG5LIRGVftA+L0pfjrSW3jjfLXkmAaiw6mNjZHyqlaARx9HYSX3O6bG +# e2XqBxAsimPsAthZDGu9by2bX3J9oat+MFkfy/saL+rzfnUYdmnH8ZRhZmXr+aow +# z7yYiq+XIlfx2OphwcpAqsKIpzV4DVeyFn/JbVtjyDBBx6xGmmF1aftBx4XDTrDz +# Qol9i9yrgBxR/lbPlZi0RNCqNfyPrhSl0FIqsd3SwQ2T7/aqqefBbAp19ojwMOPH +# 6Y72MNdcsGNzKp/ZXyXeuD3nIzGCAvUwggLxAgEBMIGTMHwxCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1l +# LVN0YW1wIFBDQSAyMDEwAhMzAAAAtEM6HP62ulKJAAAAAAC0MA0GCWCGSAFlAwQC +# AQUAoIIBMjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkE +# MSIEICK3EigvhiXqx4AEgcQ9DHAlzKOXi7dJBm95QiipsptIMIHiBgsqhkiG9w0B +# CRACDDGB0jCBzzCBzDCBsQQUB8CVl64uTm7J03X22YlRmIsgbTowgZgwgYCkfjB8 +# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk +# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N +# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAALRDOhz+trpSiQAAAAAA +# tDAWBBRd5egLny2W1+m36qKEHoY+61NGHTANBgkqhkiG9w0BAQsFAASCAQA40Aei +# FGhbmMTFFuo9rkf5VADwfG9tb0hJHXmjb/cfqe30SdBWOIMtpLF+yqf6n+FGIT/x +# 0dMJKipjn+R03FCCa7Hop9j4vzQQjNj52+v8RrOsguD+27CA2w88ClAb6w9aI1TF +# 0E7TqBr0lv733sfkUo6YXIOKgd6FNvf+NATvg4b9rl8h8hH0QiEfPL3sogu/Xb97 +# t2xcjgYFNcx2XKQfFrTuEEgV3d/wu8ejp8sU/pIoxZnXAdSm+mWdtgSLIBWkyHE0 +# Pv1h9A4NizBkBWrTWVus8LvDTujzYV7dq9/Iwl304cG1eOCFZuuTrIlErlJj7lt7 +# 4ePx6td2KFT2aruY +# SIG # End signature block diff --git a/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/tools/net45/uninstall.ps1 b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/tools/net45/uninstall.ps1 new file mode 100644 index 0000000..aa605a7 --- /dev/null +++ b/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7/tools/net45/uninstall.ps1 @@ -0,0 +1,213 @@ +# Copyright (c) .NET Foundation. All rights reserved. +# Licensed under the MIT license. See LICENSE file in the project root for full license information. + +param($installPath, $toolsPath, $package, $project) + +$roslynSubFolder = 'roslyn' + +if ($project -eq $null) { + $project = Get-Project +} + +$projectRoot = $project.Properties.Item('FullPath').Value +$binDirectory = Join-Path $projectRoot 'bin' +$targetDirectory = Join-Path $binDirectory $roslynSubFolder + +if (Test-Path $targetDirectory) { + Remove-Item $targetDirectory -Force -Recurse +} +# SIG # Begin signature block +# MIIkDAYJKoZIhvcNAQcCoIIj/TCCI/kCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCdDPl+YYCyX29a +# Rj0DO3SSLqF1mzcqkUy1cSQ/w6O5oqCCDZMwggYRMIID+aADAgECAhMzAAAAjoeR +# pFcaX8o+AAAAAACOMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMTYxMTE3MjIwOTIxWhcNMTgwMjE3MjIwOTIxWjCBgzEL +# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v +# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q +# UjEeMBwGA1UEAxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMIIBIjANBgkqhkiG9w0B +# AQEFAAOCAQ8AMIIBCgKCAQEA0IfUQit+ndnGetSiw+MVktJTnZUXyVI2+lS/qxCv +# 6cnnzCZTw8Jzv23WAOUA3OlqZzQw9hYXtAGllXyLuaQs5os7efYjDHmP81LfQAEc +# wsYDnetZz3Pp2HE5m/DOJVkt0slbCu9+1jIOXXQSBOyeBFOmawJn+E1Zi3fgKyHg +# 78CkRRLPA3sDxjnD1CLcVVx3Qv+csuVVZ2i6LXZqf2ZTR9VHCsw43o17lxl9gtAm +# +KWO5aHwXmQQ5PnrJ8by4AjQDfJnwNjyL/uJ2hX5rg8+AJcH0Qs+cNR3q3J4QZgH +# uBfMorFf7L3zUGej15Tw0otVj1OmlZPmsmbPyTdo5GPHzwIDAQABo4IBgDCCAXww +# HwYDVR0lBBgwFgYKKwYBBAGCN0wIAQYIKwYBBQUHAwMwHQYDVR0OBBYEFKvI1u2y +# FdKqjvHM7Ww490VK0Iq7MFIGA1UdEQRLMEmkRzBFMQ0wCwYDVQQLEwRNT1BSMTQw +# MgYDVQQFEysyMzAwMTIrYjA1MGM2ZTctNzY0MS00NDFmLWJjNGEtNDM0ODFlNDE1 +# ZDA4MB8GA1UdIwQYMBaAFEhuZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEsw +# SaBHoEWGQ2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0Nv +# ZFNpZ1BDQTIwMTFfMjAxMS0wNy0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsG +# AQUFBzAChkVodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01p +# Y0NvZFNpZ1BDQTIwMTFfMjAxMS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkq +# hkiG9w0BAQsFAAOCAgEARIkCrGlT88S2u9SMYFPnymyoSWlmvqWaQZk62J3SVwJR +# avq/m5bbpiZ9CVbo3O0ldXqlR1KoHksWU/PuD5rDBJUpwYKEpFYx/KCKkZW1v1rO +# qQEfZEah5srx13R7v5IIUV58MwJeUTub5dguXwJMCZwaQ9px7eTZ56LadCwXreUM +# tRj1VAnUvhxzzSB7pPrI29jbOq76kMWjvZVlrkYtVylY1pLwbNpj8Y8zon44dl7d +# 8zXtrJo7YoHQThl8SHywC484zC281TllqZXBA+KSybmr0lcKqtxSCy5WJ6PimJdX +# jrypWW4kko6C4glzgtk1g8yff9EEjoi44pqDWLDUmuYx+pRHjn2m4k5589jTajMW +# UHDxQruYCen/zJVVWwi/klKoCMTx6PH/QNf5mjad/bqQhdJVPlCtRh/vJQy4njpI +# BGPveJiiXQMNAtjcIKvmVrXe7xZmw9dVgh5PgnjJnlQaEGC3F6tAE5GusBnBmjOd +# 7jJyzWXMT0aYLQ9RYB58+/7b6Ad5B/ehMzj+CZrbj3u2Or2FhrjMvH0BMLd7Hald +# G73MTRf3bkcz1UDfasouUbi1uc/DBNM75ePpEIzrp7repC4zaikvFErqHsEiODUF +# he/CBAANa8HYlhRIFa9+UrC4YMRStUqCt4UqAEkqJoMnWkHevdVmSbwLnHhwCbww +# ggd6MIIFYqADAgECAgphDpDSAAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5 +# MDlaFw0yNjA3MDgyMTA5MDlaMH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIw +# MTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQ +# TTS68rZYIZ9CGypr6VpQqrgGOBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULT +# iQ15ZId+lGAkbK+eSZzpaF7S35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYS +# L+erCFDPs0S3XdjELgN1q2jzy23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494H +# DdVceaVJKecNvqATd76UPe/74ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZ +# PrGMXeiJT4Qa8qEvWeSQOy2uM1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5 +# bmR/U7qcD60ZI4TL9LoDho33X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGS +# rhwjp6lm7GEfauEoSZ1fiOIlXdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADh +# vKwCgl/bwBWzvRvUVUvnOaEP6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON +# 7E1JMKerjt/sW5+v/N2wZuLBl4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xc +# v3coKPHtbcMojyyPQDdPweGFRInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqw +# iBfenk70lrC8RqBsmNLg1oiMCwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMC +# AQAwHQYDVR0OBBYEFEhuZOVQBdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQM +# HgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1Ud +# IwQYMBaAFHItOgIxkEO5FAVO4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0 +# dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0Nl +# ckF1dDIwMTFfMjAxMV8wM18yMi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUF +# BzAChkJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0Nl +# ckF1dDIwMTFfMjAxMV8wM18yMi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGC +# Ny4DMIGDMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtp +# b3BzL2RvY3MvcHJpbWFyeWNwcy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcA +# YQBsAF8AcABvAGwAaQBjAHkAXwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZI +# hvcNAQELBQADggIBAGfyhqWY4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4s +# PvjDctFtg/6+P+gKyju/R6mj82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKL +# UtCw/WvjPgcuKZvmPRul1LUdd5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7 +# pKkFDJvtaPpoLpWgKj8qa1hJYx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft +# 0N3zDq+ZKJeYTQ49C/IIidYfwzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4 +# MnEnGn+x9Cf43iw6IGmYslmJaG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxv +# FX1Fp3blQCplo8NdUmKGwx1jNpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG +# 0QaxdR8UvmFhtfDcxhsEvt9Bxw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf +# 0AApxbGbpT9Fdx41xtKiop96eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkY +# S//WsyNodeav+vyL6wuA6mk7r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrv +# QQqxP/uozKRdwaGIm1dxVk5IRcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIV +# zzCCFcsCAQEwgZUwfjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x +# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv +# bjEoMCYGA1UEAxMfTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAA +# AI6HkaRXGl/KPgAAAAAAjjANBglghkgBZQMEAgEFAKCBujAZBgkqhkiG9w0BCQMx +# DAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkq +# hkiG9w0BCQQxIgQghcJggSkyt9UlCEuS8e3t1+NtMQCRDRK5Tky4YVB+nG8wTgYK +# KwYBBAGCNwIBDDFAMD6gJIAiAE0AaQBjAHIAbwBzAG8AZgB0ACAAQQBTAFAALgBO +# AEUAVKEWgBRodHRwOi8vd3d3LmFzcC5uZXQvIDANBgkqhkiG9w0BAQEFAASCAQC5 +# tdFcyNU5R6bf9mBXCTkthFjztiVyPZvEtUn2qOGr34B4ZqOJ56YTbzJEFzroZLCV +# jpQWKDHlXaMIDQnJetn72BJB00Sfa8gopHmN3wcsiYJmxHfTT69VJJEm64vUtpEe +# Ck8S48qXpBwwUENNAX+P64vYyGDG4y0hLb90GQQUSolRihsS9/e7RZj9YzE3MrG3 +# 9YVXlnmtDLyAkzmXJQSO62X8HdwRBDktg5Rlvy04UCMVWkhDQnYLhQwDjiOWlEcq +# 0dkV2iRb0yLukI0+5lhEwj6QKZfQGkds17BN1hvbCSw+czkmod5B6TqV+bcos1mQ +# cCRZFLy1Lj1yAiqztzFToYITTTCCE0kGCisGAQQBgjcDAwExghM5MIITNQYJKoZI +# hvcNAQcCoIITJjCCEyICAQMxDzANBglghkgBZQMEAgEFADCCAT0GCyqGSIb3DQEJ +# EAEEoIIBLASCASgwggEkAgEBBgorBgEEAYRZCgMBMDEwDQYJYIZIAWUDBAIBBQAE +# IPXrJNjMwN/eEiWxE+feqnWU9pTMhHqdGxd6nD8UVGEIAgZZkjf3iEwYEzIwMTcw +# ODE1MjAxMDM5LjYzOFowBwIBAYACAfSggbmkgbYwgbMxCzAJBgNVBAYTAlVTMRMw +# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN +# aWNyb3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1PUFIxJzAlBgNVBAsTHm5D +# aXBoZXIgRFNFIEVTTjo3RDJFLTM3ODItQjBGNzElMCMGA1UEAxMcTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgU2VydmljZaCCDtAwggZxMIIEWaADAgECAgphCYEqAAAAAAAC +# MA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu +# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv +# cmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRo +# b3JpdHkgMjAxMDAeFw0xMDA3MDEyMTM2NTVaFw0yNTA3MDEyMTQ2NTVaMHwxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv +# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +# MIIBCgKCAQEAqR0NvHcRijog7PwTl/X6f2mUa3RUENWlCgCChfvtfGhLLF/Fw+Vh +# wna3PmYrW/AVUycEMR9BGxqVHc4JE458YTBZsTBED/FgiIRUQwzXTbg4CLNC3ZOs +# 1nMwVyaCo0UN0Or1R4HNvyRgMlhgRvJYR4YyhB50YWeRX4FUsc+TTJLBxKZd0WET +# bijGGvmGgLvfYfxGwScdJGcSchohiq9LZIlQYrFd/XcfPfBXday9ikJNQFHRD5wG +# Pmd/9WbAA5ZEfu/QS/1u5ZrKsajyeioKMfDaTgaRtogINeh4HLDpmc085y9Euqf0 +# 3GS9pAHBIAmTeM38vMDJRF1eFpwBBU8iTQIDAQABo4IB5jCCAeIwEAYJKwYBBAGC +# NxUBBAMCAQAwHQYDVR0OBBYEFNVjOlyKMZDzQ3t8RhvFM2hahW1VMBkGCSsGAQQB +# gjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/ +# MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJ +# oEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01p +# Y1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYB +# BQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9v +# Q2VyQXV0XzIwMTAtMDYtMjMuY3J0MIGgBgNVHSABAf8EgZUwgZIwgY8GCSsGAQQB +# gjcuAzCBgTA9BggrBgEFBQcCARYxaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL1BL +# SS9kb2NzL0NQUy9kZWZhdWx0Lmh0bTBABggrBgEFBQcCAjA0HjIgHQBMAGUAZwBh +# AGwAXwBQAG8AbABpAGMAeQBfAFMAdABhAHQAZQBtAGUAbgB0AC4gHTANBgkqhkiG +# 9w0BAQsFAAOCAgEAB+aIUQ3ixuCYP4FxAz2do6Ehb7Prpsz1Mb7PBeKp/vpXbRkw +# s8LFZslq3/Xn8Hi9x6ieJeP5vO1rVFcIK1GCRBL7uVOMzPRgEop2zEBAQZvcXBf/ +# XPleFzWYJFZLdO9CEMivv3/Gf/I3fVo/HPKZeUqRUgCvOA8X9S95gWXZqbVr5MfO +# 9sp6AG9LMEQkIjzP7QOllo9ZKby2/QThcJ8ySif9Va8v/rbljjO7Yl+a21dA6fHO +# mWaQjP9qYn/dxUoLkSbiOewZSnFjnXshbcOco6I8+n99lmqQeKZt0uGc+R38ONiU +# 9MalCpaGpL2eGq4EQoO4tYCbIjggtSXlZOz39L9+Y1klD3ouOVd2onGqBooPiRa6 +# YacRy5rYDkeagMXQzafQ732D8OE7cQnfXXSYIghh2rBQHm+98eEA3+cxB6STOvdl +# R3jo+KhIq/fecn5ha293qYHLpwmsObvsxsvYgrRyzR30uIUBHoD7G4kqVDmyW9rI +# DVWZeodzOwjmmC3qjeAzLhIp9cAvVCch98isTtoouLGp25ayp0Kiyc8ZQU3ghvkq +# mqMRZjDTu3QyS99je/WZii8bxyGvWbWu3EQ8l1Bx16HSxVXjad5XwdHeMMD9zOZN +# +w2/XU/pnR4ZOC+8z1gFLu8NoFA12u8JJxzVs341Hgi62jbb01+P3nSISRIwggTa +# MIIDwqADAgECAhMzAAAAokyOHdqpIXyEAAAAAACiMA0GCSqGSIb3DQEBCwUAMHwx +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p +# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTE2MDkwNzE3NTY0OVoXDTE4 +# MDkwNzE3NTY0OVowgbMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xDTALBgNVBAsTBE1PUFIxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVTTjo3RDJF +# LTM3ODItQjBGNzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj +# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYBdwV7w30Odmi9xqiD +# xoJ7AXCosGqEck9Ujm2+ZyBqvuwt3S9HceGS/XRia75024U22zTIx2kK5jYSSUBH +# uEE0WWI98ROnrgkBKNEUWGMfObBoNgTYWdpNW+CRcRL8QbMNzsFyoRUm9vOZW+jg +# iq4Qdao51/EO8gnBMXUMKSop3eyONyrfa6rjMrjYTXvIcRCQwb46hhkL6OmtH7g0 +# I61hjJYu+z5ML0JlxgsesbBYwmub58+LBMeTQZ3mebjl95ZX3IDFBQUApkEiNxb5 +# tOtHrC85rdDF0wxE1wlbadEJ8wMrYydaB5D074yjMyWNNyw/JZmz8xU+ppLq+VEY +# 5dUCAwEAAaOCARswggEXMB0GA1UdDgQWBBRuu9nBwtoWsHytwlN/59AXEz28VzAf +# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH +# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU +# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF +# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0 +# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG +# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQA1mVdtM/ZInZ5B3MypYO5cR0hUEQqG +# uVc/p22Yjsp8aaZqloPOObK9ZA6ZMLu+3OB1gmtCKeGFRI4xe3NoWXmYnVe0Fgf8 +# oim8o3CCISYdZUsZ5okqVc2vupJq3siaCQJbJRaXx6u5Wtr086AbgnCqSsZGtXqA +# xGJCg/dxWmQrJv3zjiMLThbyG/LQNQpD2jzzqRqRisQ1eNkQqGMGo2R/rL8o7qgc +# FXiPoPfCccXYuJLOqpdyOUwPaGRETsqG5S3LsgKxKD39Gb8A1kjT3w207QwkkEUU +# vJV5OgPsY4Y8NO5xsj0uanmQgrbrGxpZu6+Li3nxqf1KMfI8ahsVXTrGoYIDeTCC +# AmECAQEwgeOhgbmkgbYwgbMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xDTALBgNVBAsTBE1PUFIxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVTTjo3 +# RDJFLTM3ODItQjBGNzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy +# dmljZaIlCgEBMAkGBSsOAwIaBQADFQBeLxfpcYTSMsvs115KO/hOt4fp9aCBwjCB +# v6SBvDCBuTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV +# BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsG +# A1UECxMETU9QUjEnMCUGA1UECxMebkNpcGhlciBOVFMgRVNOOjU3RjYtQzFFMC01 +# NTRDMSswKQYDVQQDEyJNaWNyb3NvZnQgVGltZSBTb3VyY2UgTWFzdGVyIENsb2Nr +# MA0GCSqGSIb3DQEBBQUAAgUA3T2oQTAiGA8yMDE3MDgxNTE3MDUwNVoYDzIwMTcw +# ODE2MTcwNTA1WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDdPahBAgEAMAoCAQAC +# AhbwAgH/MAcCAQACAhlJMAoCBQDdPvnBAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwG +# CisGAQQBhFkKAwGgCjAIAgEAAgMW42ChCjAIAgEAAgMHoSAwDQYJKoZIhvcNAQEF +# BQADggEBAFS365eqiGu9D8r7KU3uqdhN7+2fQuj5oa8o0dJ4nIcXbKoPEr0Hl+v1 +# PBpKIQKW0pUxJNhFzjJlMqg3YCKBusu1+Ygq2mp012HkaMR9oNdu7bU8swSCkrDa +# JjE0kkZ5pBbxnZpbgbhaoP4/5GI4li5imUBa7LUs3VyA1Vv5iVfbvHOUxKwetP8V +# JmJubpnbvlgkOF+ajUkpUeCBXPOKWuwFlxUZsSULLtB11jbuQ8rE7hMWxS2Y9EvG +# kV5zq2bOwqKs14LoohVzQICf1DKBmTAYypom8e4SfpqYedAYCnycQ0ZSillyHhDA +# r02MzlhVpyPrRPkRxIz5I4vT0pO32gQxggL1MIIC8QIBATCBkzB8MQswCQYDVQQG +# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG +# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg +# VGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAKJMjh3aqSF8hAAAAAAAojANBglghkgB +# ZQMEAgEFAKCCATIwGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3 +# DQEJBDEiBCAQE/ijUO0Wnf/477lkXA/ASaWqiNqKb9Kc5TQ8/VwhkDCB4gYLKoZI +# hvcNAQkQAgwxgdIwgc8wgcwwgbEEFF4vF+lxhNIyy+zXXko7+E63h+n1MIGYMIGA +# pH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE +# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAACiTI4d2qkhfIQA +# AAAAAKIwFgQU0ybd1p56VohX/3siK8/0RFky36AwDQYJKoZIhvcNAQELBQAEggEA +# Db13movvKsgzUyru6EMnuPzgiwTKGyXOQzAns9a4pYmd9TCQeU7yBUNWmOUyvkG3 +# mQ7tqnX7UIs9rjKt9MBKMDLMCtr51AlYCvtqb2BxjNbiuTmEdOLDm7fkaEHBC+du +# jk9N96bDI0ETPCaBZykcpn0+iK6fEP+QgarkxPKUvbqH52zQJp6I25n/3hRKwgmV +# Hv+eLwQft5PwaJRr+uGB1r5m1pmd39DkU3hrde2v4tddZb/rUvMSoR22cdXVrAqz +# 33nDKsQlMLnVCraW5WhhHGxucDBPXYtFzvA4A7njNrg07EvLfE9MVevXWeAsAp8T +# 7b1uih56Icu+mBrz7o4ORw== +# SIG # End signature block diff --git a/packages/Microsoft.Net.Compilers.2.3.2/Microsoft.Net.Compilers.2.3.2.nupkg b/packages/Microsoft.Net.Compilers.2.3.2/Microsoft.Net.Compilers.2.3.2.nupkg new file mode 100644 index 0000000..639114d Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/Microsoft.Net.Compilers.2.3.2.nupkg differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/ThirdPartyNotices.rtf b/packages/Microsoft.Net.Compilers.2.3.2/ThirdPartyNotices.rtf new file mode 100644 index 0000000..b74371f --- /dev/null +++ b/packages/Microsoft.Net.Compilers.2.3.2/ThirdPartyNotices.rtf @@ -0,0 +1,54 @@ +{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033\deflangfe1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Tahoma;}} +{\colortbl ;\red0\green0\blue255;} +{\*\generator Riched20 10.0.10037}{\*\mmathPr\mnaryLim0\mdispDef1\mwrapIndent1440 }\viewkind4\uc1 +\pard\nowidctlpar\sb120\sa120\f0\fs19 THIRD-PARTY SOFTWARE NOTICES AND INFORMATION\par +Do Not Translate or Localize\par +\par +This file provides information regarding components that are being relicensed to you by Microsoft Corporation under Microsoft's software licensing terms. Microsoft Corporation reserves all rights not expressly granted herein.\par +\par +%% \caps .NET Compiler Platform\caps0 NOTICES AND INFORMATION BEGIN HERE\par +=========================================\par +Copyright (C) .NET Foundation. All rights reserved.\par +\par +Apache License, Version 2.0\par +Apache License\par +Version 2.0, January 2004\par +{{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/ }}{\fldrslt{http://www.apache.org/licenses/\ul0\cf0}}}}\f0\fs19\par +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\par +1. Definitions.\par +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.\par +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.\par +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.\par +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.\par +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.\par +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.\par +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).\par +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.\par +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."\par +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.\par +2. Grant of Copyright License.\par +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.\par +3. Grant of Patent License.\par +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.\par +4. Redistribution.\par +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:\par +1. You must give any other recipients of the Work or Derivative Works a copy of this License; and\par +2. You must cause any modified files to carry prominent notices stating that You changed the files; and\par +3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and\par +4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.\par +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.\par +5. Submission of Contributions.\par +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.\par +6. Trademarks.\par +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.\par +7. Disclaimer of Warranty.\par +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.\par +8. Limitation of Liability.\par +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.\par +9. Accepting Warranty or Additional Liability.\par +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.\par +END OF TERMS AND CONDITIONS\par +=========================================\par +END OF \caps .NET Compiler Platform\caps0 NOTICES AND INFORMATION\par +} + \ No newline at end of file diff --git a/packages/Microsoft.Net.Compilers.2.3.2/build/Microsoft.Net.Compilers.props b/packages/Microsoft.Net.Compilers.2.3.2/build/Microsoft.Net.Compilers.props new file mode 100644 index 0000000..d65f4c0 --- /dev/null +++ b/packages/Microsoft.Net.Compilers.2.3.2/build/Microsoft.Net.Compilers.props @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + false + $(MSBuildThisFileDirectory)..\tools\Microsoft.CSharp.Core.targets + $(MSBuildThisFileDirectory)..\tools\Microsoft.VisualBasic.Core.targets + + + + + $(MSBuildThisFileDirectory)..\tools + csc.exe + $(MSBuildThisFileDirectory)..\tools + vbc.exe + + \ No newline at end of file diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.Build.Tasks.CodeAnalysis.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.Build.Tasks.CodeAnalysis.dll new file mode 100644 index 0000000..220bd22 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.Build.Tasks.CodeAnalysis.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CSharp.Core.targets b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CSharp.Core.targets new file mode 100644 index 0000000..885d32a --- /dev/null +++ b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CSharp.Core.targets @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + $(NoWarn);1701;1702 + + + + + $(NoWarn);2008 + + + + + + + + + + + $(AppConfig) + + + $(IntermediateOutputPath)$(TargetName).compile.pdb + + + + + false + + + + + + + + + + true + + + + + + + + + <_CoreCompileResourceInputs Remove="@(_CoreCompileResourceInputs)" /> + + + + + \ No newline at end of file diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.CSharp.Scripting.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.CSharp.Scripting.dll new file mode 100644 index 0000000..26c8511 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.CSharp.Scripting.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.CSharp.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.CSharp.dll new file mode 100644 index 0000000..f95ba4f Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.CSharp.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.Scripting.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.Scripting.dll new file mode 100644 index 0000000..f6a4010 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.Scripting.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.VisualBasic.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.VisualBasic.dll new file mode 100644 index 0000000..bc12eda Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.VisualBasic.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.dll new file mode 100644 index 0000000..860ad63 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.CodeAnalysis.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.DiaSymReader.Native.amd64.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.DiaSymReader.Native.amd64.dll new file mode 100644 index 0000000..d5ee45e Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.DiaSymReader.Native.amd64.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.DiaSymReader.Native.x86.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.DiaSymReader.Native.x86.dll new file mode 100644 index 0000000..8625ad1 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.DiaSymReader.Native.x86.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.VisualBasic.Core.targets b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.VisualBasic.Core.targets new file mode 100644 index 0000000..89249ef --- /dev/null +++ b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.VisualBasic.Core.targets @@ -0,0 +1,162 @@ + + + + + + + + + + + + + <_NoWarnings Condition="'$(WarningLevel)' == '0'">true + <_NoWarnings Condition="'$(WarningLevel)' == '1'">false + + + + + $(IntermediateOutputPath)$(TargetName).compile.pdb + + + + + + + + + + + false + + + + + + + + + + true + + + + + + + + <_CoreCompileResourceInputs Remove="@(_CoreCompileResourceInputs)" /> + + + + + \ No newline at end of file diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.Win32.Primitives.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.Win32.Primitives.dll new file mode 100644 index 0000000..d7b2a2c Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/Microsoft.Win32.Primitives.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.AppContext.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.AppContext.dll new file mode 100644 index 0000000..5cb9dfb Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.AppContext.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Collections.Immutable.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Collections.Immutable.dll new file mode 100644 index 0000000..ce6fc0e Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Collections.Immutable.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Console.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Console.dll new file mode 100644 index 0000000..f47e609 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Console.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Diagnostics.FileVersionInfo.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Diagnostics.FileVersionInfo.dll new file mode 100644 index 0000000..77248bf Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Diagnostics.FileVersionInfo.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Diagnostics.Process.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Diagnostics.Process.dll new file mode 100644 index 0000000..e03db64 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Diagnostics.Process.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Diagnostics.StackTrace.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Diagnostics.StackTrace.dll new file mode 100644 index 0000000..5ec85f3 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Diagnostics.StackTrace.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.Compression.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.Compression.dll new file mode 100644 index 0000000..f8468a6 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.Compression.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.FileSystem.DriveInfo.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.FileSystem.DriveInfo.dll new file mode 100644 index 0000000..754677f Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.FileSystem.DriveInfo.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.FileSystem.Primitives.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.FileSystem.Primitives.dll new file mode 100644 index 0000000..ad9c238 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.FileSystem.Primitives.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.FileSystem.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.FileSystem.dll new file mode 100644 index 0000000..7c43977 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.FileSystem.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.Pipes.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.Pipes.dll new file mode 100644 index 0000000..f0b233a Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.IO.Pipes.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Reflection.Metadata.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Reflection.Metadata.dll new file mode 100644 index 0000000..ee68731 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Reflection.Metadata.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.AccessControl.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.AccessControl.dll new file mode 100644 index 0000000..ea65f02 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.AccessControl.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Claims.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Claims.dll new file mode 100644 index 0000000..4e28e4c Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Claims.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Cryptography.Algorithms.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Cryptography.Algorithms.dll new file mode 100644 index 0000000..fa8ad65 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Cryptography.Algorithms.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Cryptography.Encoding.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Cryptography.Encoding.dll new file mode 100644 index 0000000..de1ec5e Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Cryptography.Encoding.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Cryptography.Primitives.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Cryptography.Primitives.dll new file mode 100644 index 0000000..16b2446 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Cryptography.Primitives.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Cryptography.X509Certificates.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Cryptography.X509Certificates.dll new file mode 100644 index 0000000..e6af960 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Cryptography.X509Certificates.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Principal.Windows.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Principal.Windows.dll new file mode 100644 index 0000000..06601a1 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Security.Principal.Windows.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Text.Encoding.CodePages.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Text.Encoding.CodePages.dll new file mode 100644 index 0000000..0f2f447 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Text.Encoding.CodePages.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Threading.Thread.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Threading.Thread.dll new file mode 100644 index 0000000..c0271b0 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Threading.Thread.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.ValueTuple.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.ValueTuple.dll new file mode 100644 index 0000000..78a1851 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.ValueTuple.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Xml.ReaderWriter.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Xml.ReaderWriter.dll new file mode 100644 index 0000000..3d5103b Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Xml.ReaderWriter.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Xml.XPath.XDocument.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Xml.XPath.XDocument.dll new file mode 100644 index 0000000..ada40e0 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Xml.XPath.XDocument.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Xml.XPath.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Xml.XPath.dll new file mode 100644 index 0000000..86a25a3 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Xml.XPath.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Xml.XmlDocument.dll b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Xml.XmlDocument.dll new file mode 100644 index 0000000..cf138d3 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/System.Xml.XmlDocument.dll differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/VBCSCompiler.exe b/packages/Microsoft.Net.Compilers.2.3.2/tools/VBCSCompiler.exe new file mode 100644 index 0000000..e225aae Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/VBCSCompiler.exe differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/VBCSCompiler.exe.config b/packages/Microsoft.Net.Compilers.2.3.2/tools/VBCSCompiler.exe.config new file mode 100644 index 0000000..f0d9411 --- /dev/null +++ b/packages/Microsoft.Net.Compilers.2.3.2/tools/VBCSCompiler.exe.config @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/csc.exe b/packages/Microsoft.Net.Compilers.2.3.2/tools/csc.exe new file mode 100644 index 0000000..5278855 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/csc.exe differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/csc.exe.config b/packages/Microsoft.Net.Compilers.2.3.2/tools/csc.exe.config new file mode 100644 index 0000000..f768ff4 --- /dev/null +++ b/packages/Microsoft.Net.Compilers.2.3.2/tools/csc.exe.config @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/csc.rsp b/packages/Microsoft.Net.Compilers.2.3.2/tools/csc.rsp new file mode 100644 index 0000000..ce72ac6 --- /dev/null +++ b/packages/Microsoft.Net.Compilers.2.3.2/tools/csc.rsp @@ -0,0 +1,46 @@ +# Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +# This file contains command-line options that the C# +# command line compiler (CSC) will process as part +# of every compilation, unless the "/noconfig" option +# is specified. + +# Reference the common Framework libraries +/r:Accessibility.dll +/r:Microsoft.CSharp.dll +/r:System.Configuration.dll +/r:System.Configuration.Install.dll +/r:System.Core.dll +/r:System.Data.dll +/r:System.Data.DataSetExtensions.dll +/r:System.Data.Linq.dll +/r:System.Data.OracleClient.dll +/r:System.Deployment.dll +/r:System.Design.dll +/r:System.DirectoryServices.dll +/r:System.dll +/r:System.Drawing.Design.dll +/r:System.Drawing.dll +/r:System.EnterpriseServices.dll +/r:System.Management.dll +/r:System.Messaging.dll +/r:System.Runtime.Remoting.dll +/r:System.Runtime.Serialization.dll +/r:System.Runtime.Serialization.Formatters.Soap.dll +/r:System.Security.dll +/r:System.ServiceModel.dll +/r:System.ServiceModel.Web.dll +/r:System.ServiceProcess.dll +/r:System.Transactions.dll +/r:System.Web.dll +/r:System.Web.Extensions.Design.dll +/r:System.Web.Extensions.dll +/r:System.Web.Mobile.dll +/r:System.Web.RegularExpressions.dll +/r:System.Web.Services.dll +/r:System.Windows.Forms.dll +/r:System.Workflow.Activities.dll +/r:System.Workflow.ComponentModel.dll +/r:System.Workflow.Runtime.dll +/r:System.Xml.dll +/r:System.Xml.Linq.dll diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/csi.exe b/packages/Microsoft.Net.Compilers.2.3.2/tools/csi.exe new file mode 100644 index 0000000..93b234e Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/csi.exe differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/csi.exe.config b/packages/Microsoft.Net.Compilers.2.3.2/tools/csi.exe.config new file mode 100644 index 0000000..19d03cc --- /dev/null +++ b/packages/Microsoft.Net.Compilers.2.3.2/tools/csi.exe.config @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/csi.rsp b/packages/Microsoft.Net.Compilers.2.3.2/tools/csi.rsp new file mode 100644 index 0000000..2ec6fc9 --- /dev/null +++ b/packages/Microsoft.Net.Compilers.2.3.2/tools/csi.rsp @@ -0,0 +1,14 @@ +/r:System +/r:System.Core +/r:Microsoft.CSharp +/r:System.ValueTuple.dll +/u:System +/u:System.IO +/u:System.Collections.Generic +/u:System.Console +/u:System.Diagnostics +/u:System.Dynamic +/u:System.Linq +/u:System.Linq.Expressions +/u:System.Text +/u:System.Threading.Tasks \ No newline at end of file diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/vbc.exe b/packages/Microsoft.Net.Compilers.2.3.2/tools/vbc.exe new file mode 100644 index 0000000..8b69249 Binary files /dev/null and b/packages/Microsoft.Net.Compilers.2.3.2/tools/vbc.exe differ diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/vbc.exe.config b/packages/Microsoft.Net.Compilers.2.3.2/tools/vbc.exe.config new file mode 100644 index 0000000..f768ff4 --- /dev/null +++ b/packages/Microsoft.Net.Compilers.2.3.2/tools/vbc.exe.config @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.Net.Compilers.2.3.2/tools/vbc.rsp b/packages/Microsoft.Net.Compilers.2.3.2/tools/vbc.rsp new file mode 100644 index 0000000..8350880 --- /dev/null +++ b/packages/Microsoft.Net.Compilers.2.3.2/tools/vbc.rsp @@ -0,0 +1,55 @@ +# Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +# This file contains command-line options that the VB +# command line compiler (VBC) will process as part +# of every compilation, unless the "/noconfig" option +# is specified. + +# Reference the common Framework libraries +/r:Accessibility.dll +/r:System.Configuration.dll +/r:System.Configuration.Install.dll +/r:System.Data.dll +/r:System.Data.OracleClient.dll +/r:System.Deployment.dll +/r:System.Design.dll +/r:System.DirectoryServices.dll +/r:System.dll +/r:System.Drawing.Design.dll +/r:System.Drawing.dll +/r:System.EnterpriseServices.dll +/r:System.Management.dll +/r:System.Messaging.dll +/r:System.Runtime.Remoting.dll +/r:System.Runtime.Serialization.Formatters.Soap.dll +/r:System.Security.dll +/r:System.ServiceProcess.dll +/r:System.Transactions.dll +/r:System.Web.dll +/r:System.Web.Mobile.dll +/r:System.Web.RegularExpressions.dll +/r:System.Web.Services.dll +/r:System.Windows.Forms.dll +/r:System.XML.dll + +/r:System.Workflow.Activities.dll +/r:System.Workflow.ComponentModel.dll +/r:System.Workflow.Runtime.dll +/r:System.Runtime.Serialization.dll +/r:System.ServiceModel.dll + +/r:System.Core.dll +/r:System.Xml.Linq.dll +/r:System.Data.Linq.dll +/r:System.Data.DataSetExtensions.dll +/r:System.Web.Extensions.dll +/r:System.Web.Extensions.Design.dll +/r:System.ServiceModel.Web.dll + +# Import System and Microsoft.VisualBasic +/imports:System +/imports:Microsoft.VisualBasic +/imports:System.Linq +/imports:System.Xml.Linq + +/optioninfer+ diff --git a/packages/Newtonsoft.Json.10.0.3/LICENSE.md b/packages/Newtonsoft.Json.10.0.3/LICENSE.md new file mode 100644 index 0000000..dfaadbe --- /dev/null +++ b/packages/Newtonsoft.Json.10.0.3/LICENSE.md @@ -0,0 +1,20 @@ +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. diff --git a/packages/Newtonsoft.Json.10.0.3/Newtonsoft.Json.10.0.3.nupkg b/packages/Newtonsoft.Json.10.0.3/Newtonsoft.Json.10.0.3.nupkg new file mode 100644 index 0000000..4e1ee11 Binary files /dev/null and b/packages/Newtonsoft.Json.10.0.3/Newtonsoft.Json.10.0.3.nupkg differ diff --git a/packages/Newtonsoft.Json.10.0.3/lib/net20/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.10.0.3/lib/net20/Newtonsoft.Json.dll new file mode 100644 index 0000000..c1f29c2 Binary files /dev/null and b/packages/Newtonsoft.Json.10.0.3/lib/net20/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.10.0.3/lib/net20/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.10.0.3/lib/net20/Newtonsoft.Json.xml new file mode 100644 index 0000000..0647513 --- /dev/null +++ b/packages/Newtonsoft.Json.10.0.3/lib/net20/Newtonsoft.Json.xml @@ -0,0 +1,9815 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets a value indicating whether integer values are allowed when deserializing. + + true if integers are allowed when deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the used when serializing the property's collection items. + + The collection's items . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Gets or sets how null values are handled during serialization and deserialization. + + + + + Gets or sets how default values are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Represents a JSON property. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + + The JSON line info handling. + + + + Specifies the settings used when merging JSON. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Represents an abstract JSON token. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Gets a dictionary of the names and values of an type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + Provides a set of static (Shared in Visual Basic) methods for + querying objects that implement . + + + + + Returns the input typed as . + + + + + Returns an empty that has the + specified type argument. + + + + + Converts the elements of an to the + specified type. + + + + + Filters the elements of an based on a specified type. + + + + + Generates a sequence of integral numbers within a specified range. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + + + + Generates a sequence that contains one repeated value. + + + + + Filters a sequence of values based on a predicate. + + + + + Filters a sequence of values based on a predicate. + Each element's index is used in the logic of the predicate function. + + + + + Projects each element of a sequence into a new form. + + + + + Projects each element of a sequence into a new form by + incorporating the element's index. + + + + + Projects each element of a sequence to an + and flattens the resulting sequences into one sequence. + + + + + Projects each element of a sequence to an , + and flattens the resulting sequences into one sequence. The + index of each source element is used in the projected form of + that element. + + + + + Projects each element of a sequence to an , + flattens the resulting sequences into one sequence, and invokes + a result selector function on each element therein. + + + + + Projects each element of a sequence to an , + flattens the resulting sequences into one sequence, and invokes + a result selector function on each element therein. The index of + each source element is used in the intermediate projected form + of that element. + + + + + Returns elements from a sequence as long as a specified condition is true. + + + + + Returns elements from a sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + + + + Base implementation of First operator. + + + + + Returns the first element of a sequence. + + + + + Returns the first element in a sequence that satisfies a specified condition. + + + + + Returns the first element of a sequence, or a default value if + the sequence contains no elements. + + + + + Returns the first element of the sequence that satisfies a + condition or a default value if no such element is found. + + + + + Base implementation of Last operator. + + + + + Returns the last element of a sequence. + + + + + Returns the last element of a sequence that satisfies a + specified condition. + + + + + Returns the last element of a sequence, or a default value if + the sequence contains no elements. + + + + + Returns the last element of a sequence that satisfies a + condition or a default value if no such element is found. + + + + + Base implementation of Single operator. + + + + + Returns the only element of a sequence, and throws an exception + if there is not exactly one element in the sequence. + + + + + Returns the only element of a sequence that satisfies a + specified condition, and throws an exception if more than one + such element exists. + + + + + Returns the only element of a sequence, or a default value if + the sequence is empty; this method throws an exception if there + is more than one element in the sequence. + + + + + Returns the only element of a sequence that satisfies a + specified condition or a default value if no such element + exists; this method throws an exception if more than one element + satisfies the condition. + + + + + Returns the element at a specified index in a sequence. + + + + + Returns the element at a specified index in a sequence or a + default value if the index is out of range. + + + + + Inverts the order of the elements in a sequence. + + + + + Returns a specified number of contiguous elements from the start + of a sequence. + + + + + Bypasses a specified number of elements in a sequence and then + returns the remaining elements. + + + + + Bypasses elements in a sequence as long as a specified condition + is true and then returns the remaining elements. + + + + + Bypasses elements in a sequence as long as a specified condition + is true and then returns the remaining elements. The element's + index is used in the logic of the predicate function. + + + + + Returns the number of elements in a sequence. + + + + + Returns a number that represents how many elements in the + specified sequence satisfy a condition. + + + + + Returns a that represents the total number + of elements in a sequence. + + + + + Returns a that represents how many elements + in a sequence satisfy a condition. + + + + + Concatenates two sequences. + + + + + Creates a from an . + + + + + Creates an array from an . + + + + + Returns distinct elements from a sequence by using the default + equality comparer to compare values. + + + + + Returns distinct elements from a sequence by using a specified + to compare values. + + + + + Creates a from an + according to a specified key + selector function. + + + + + Creates a from an + according to a specified key + selector function and a key comparer. + + + + + Creates a from an + according to specified key + and element selector functions. + + + + + Creates a from an + according to a specified key + selector function, a comparer and an element selector function. + + + + + Groups the elements of a sequence according to a specified key + selector function. + + + + + Groups the elements of a sequence according to a specified key + selector function and compares the keys by using a specified + comparer. + + + + + Groups the elements of a sequence according to a specified key + selector function and projects the elements for each group by + using a specified function. + + + + + Groups the elements of a sequence according to a specified key + selector function and creates a result value from each group and + its key. + + + + + Groups the elements of a sequence according to a key selector + function. The keys are compared by using a comparer and each + group's elements are projected by using a specified function. + + + + + Groups the elements of a sequence according to a specified key + selector function and creates a result value from each group and + its key. The elements of each group are projected by using a + specified function. + + + + + Groups the elements of a sequence according to a specified key + selector function and creates a result value from each group and + its key. The keys are compared by using a specified comparer. + + + + + Groups the elements of a sequence according to a specified key + selector function and creates a result value from each group and + its key. Key values are compared by using a specified comparer, + and the elements of each group are projected by using a + specified function. + + + + + Applies an accumulator function over a sequence. + + + + + Applies an accumulator function over a sequence. The specified + seed value is used as the initial accumulator value. + + + + + 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. + + + + + Produces the set union of two sequences by using the default + equality comparer. + + + + + Produces the set union of two sequences by using a specified + . + + + + + Returns the elements of the specified sequence or the type + parameter's default value in a singleton collection if the + sequence is empty. + + + + + Returns the elements of the specified sequence or the specified + value in a singleton collection if the sequence is empty. + + + + + Determines whether all elements of a sequence satisfy a condition. + + + + + Determines whether a sequence contains any elements. + + + + + Determines whether any element of a sequence satisfies a + condition. + + + + + Determines whether a sequence contains a specified element by + using the default equality comparer. + + + + + Determines whether a sequence contains a specified element by + using a specified . + + + + + Determines whether two sequences are equal by comparing the + elements by using the default equality comparer for their type. + + + + + Determines whether two sequences are equal by comparing their + elements by using a specified . + + + + + Base implementation for Min/Max operator. + + + + + Base implementation for Min/Max operator for nullable types. + + + + + Returns the minimum value in a generic sequence. + + + + + Invokes a transform function on each element of a generic + sequence and returns the minimum resulting value. + + + + + Returns the maximum value in a generic sequence. + + + + + Invokes a transform function on each element of a generic + sequence and returns the maximum resulting value. + + + + + Makes an enumerator seen as enumerable once more. + + + The supplied enumerator must have been started. The first element + returned is the element the enumerator was on when passed in. + DO NOT use this method if the caller must be a generator. It is + mostly safe among aggregate operations. + + + + + Sorts the elements of a sequence in ascending order according to a key. + + + + + Sorts the elements of a sequence in ascending order by using a + specified comparer. + + + + + Sorts the elements of a sequence in descending order according to a key. + + + + + Sorts the elements of a sequence in descending order by using a + specified comparer. + + + + + Performs a subsequent ordering of the elements in a sequence in + ascending order according to a key. + + + + + Performs a subsequent ordering of the elements in a sequence in + ascending order by using a specified comparer. + + + + + Performs a subsequent ordering of the elements in a sequence in + descending order, according to a key. + + + + + Performs a subsequent ordering of the elements in a sequence in + descending order by using a specified comparer. + + + + + Base implementation for Intersect and Except operators. + + + + + Produces the set intersection of two sequences by using the + default equality comparer to compare values. + + + + + Produces the set intersection of two sequences by using the + specified to compare values. + + + + + Produces the set difference of two sequences by using the + default equality comparer to compare values. + + + + + Produces the set difference of two sequences by using the + specified to compare values. + + + + + Creates a from an + according to a specified key + selector function. + + + + + Creates a from an + according to a specified key + selector function and key comparer. + + + + + Creates a from an + according to specified key + selector and element selector functions. + + + + + Creates a from an + according to a specified key + selector function, a comparer, and an element selector function. + + + + + Correlates the elements of two sequences based on matching keys. + The default equality comparer is used to compare keys. + + + + + Correlates the elements of two sequences based on matching keys. + The default equality comparer is used to compare keys. A + specified is used to compare keys. + + + + + Correlates the elements of two sequences based on equality of + keys and groups the results. The default equality comparer is + used to compare keys. + + + + + Correlates the elements of two sequences based on equality of + keys and groups the results. The default equality comparer is + used to compare keys. A specified + is used to compare keys. + + + + + Computes the sum of a sequence of values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Computes the sum of a sequence of values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Computes the sum of a sequence of values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Computes the sum of a sequence of values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Represents a collection of objects that have a common key. + + + + + Gets the key of the . + + + + + Defines an indexer, size property, and Boolean search method for + data structures that map keys to + sequences of values. + + + + + Represents a sorted sequence. + + + + + Performs a subsequent ordering on the elements of an + according to a key. + + + + + Represents a collection of keys each mapped to one or more values. + + + + + Gets the number of key/value collection pairs in the . + + + + + Gets the collection of values indexed by the specified key. + + + + + Determines whether a specified key is in the . + + + + + Applies a transform function to each key and its associated + values and returns the results. + + + + + Returns a generic enumerator that iterates through the . + + + + + See issue #11 + for why this method is needed and cannot be expressed as a + lambda at the call site. + + + + + See issue #11 + for why this method is needed and cannot be expressed as a + lambda at the call site. + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + + This attribute allows us to define extension methods without + requiring .NET Framework 3.5. For more information, see the section, + Extension Methods in .NET Framework 2.0 Apps, + of Basic Instincts: Extension Methods + column in MSDN Magazine, + issue Nov 2007. + + + + diff --git a/packages/Newtonsoft.Json.10.0.3/lib/net35/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.10.0.3/lib/net35/Newtonsoft.Json.dll new file mode 100644 index 0000000..78a1763 Binary files /dev/null and b/packages/Newtonsoft.Json.10.0.3/lib/net35/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.10.0.3/lib/net35/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.10.0.3/lib/net35/Newtonsoft.Json.xml new file mode 100644 index 0000000..cb7b932 --- /dev/null +++ b/packages/Newtonsoft.Json.10.0.3/lib/net35/Newtonsoft.Json.xml @@ -0,0 +1,8944 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets a value indicating whether integer values are allowed when deserializing. + + true if integers are allowed when deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the used when serializing the property's collection items. + + The collection's items . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Gets or sets how null values are handled during serialization and deserialization. + + + + + Gets or sets how default values are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Represents a JSON property. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + + The JSON line info handling. + + + + Specifies the settings used when merging JSON. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Represents an abstract JSON token. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Gets a dictionary of the names and values of an type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + diff --git a/packages/Newtonsoft.Json.10.0.3/lib/net40/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.10.0.3/lib/net40/Newtonsoft.Json.dll new file mode 100644 index 0000000..71ba702 Binary files /dev/null and b/packages/Newtonsoft.Json.10.0.3/lib/net40/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.10.0.3/lib/net40/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.10.0.3/lib/net40/Newtonsoft.Json.xml new file mode 100644 index 0000000..6456226 --- /dev/null +++ b/packages/Newtonsoft.Json.10.0.3/lib/net40/Newtonsoft.Json.xml @@ -0,0 +1,9144 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets a value indicating whether integer values are allowed when deserializing. + + true if integers are allowed when deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the used when serializing the property's collection items. + + The collection's items . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Gets or sets how null values are handled during serialization and deserialization. + + + + + Gets or sets how default values are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + + The JSON line info handling. + + + + Specifies the settings used when merging JSON. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Represents an abstract JSON token. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Gets a dictionary of the names and values of an type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + diff --git a/packages/Newtonsoft.Json.10.0.3/lib/net45/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.10.0.3/lib/net45/Newtonsoft.Json.dll new file mode 100644 index 0000000..77a5d89 Binary files /dev/null and b/packages/Newtonsoft.Json.10.0.3/lib/net45/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.10.0.3/lib/net45/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.10.0.3/lib/net45/Newtonsoft.Json.xml new file mode 100644 index 0000000..b386458 --- /dev/null +++ b/packages/Newtonsoft.Json.10.0.3/lib/net45/Newtonsoft.Json.xml @@ -0,0 +1,10760 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets a value indicating whether integer values are allowed when deserializing. + + true if integers are allowed when deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the used when serializing the property's collection items. + + The collection's items . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Gets or sets how null values are handled during serialization and deserialization. + + + + + Gets or sets how default values are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + + The JSON line info handling. + + + + Specifies the settings used when merging JSON. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Gets a dictionary of the names and values of an type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + diff --git a/packages/Newtonsoft.Json.10.0.3/lib/netstandard1.0/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.10.0.3/lib/netstandard1.0/Newtonsoft.Json.dll new file mode 100644 index 0000000..b9258ef Binary files /dev/null and b/packages/Newtonsoft.Json.10.0.3/lib/netstandard1.0/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.10.0.3/lib/netstandard1.0/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.10.0.3/lib/netstandard1.0/Newtonsoft.Json.xml new file mode 100644 index 0000000..f7a4e30 --- /dev/null +++ b/packages/Newtonsoft.Json.10.0.3/lib/netstandard1.0/Newtonsoft.Json.xml @@ -0,0 +1,10467 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets a value indicating whether integer values are allowed when deserializing. + + true if integers are allowed when deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the used when serializing the property's collection items. + + The collection's items . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Gets or sets how null values are handled during serialization and deserialization. + + + + + Gets or sets how default values are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + + The JSON line info handling. + + + + Specifies the settings used when merging JSON. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Allows users to control class loading and mandate what class to load. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Specifies what messages to output for the class. + + + + + Output no tracing and debugging messages. + + + + + Output error-handling messages. + + + + + Output warnings and error-handling messages. + + + + + Output informational messages, warnings, and error-handling messages. + + + + + Output all debugging and tracing messages. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Gets a dictionary of the names and values of an type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + List of primitive types which can be widened. + + + + + Widening masks for primitive types above. + Index of the value in this array defines a type we're widening, + while the bits in mask define types it can be widened to (including itself). + + For example, value at index 0 defines a bool type, and it only has bit 0 set, + i.e. bool values can be assigned only to bool. + + + + + Checks if value of primitive type can be + assigned to parameter of primitive type . + + Source primitive type. + Target primitive type. + true if source type can be widened to target type, false otherwise. + + + + Checks if a set of values with given can be used + to invoke a method with specified . + + Method parameters. + Argument types. + Try to pack extra arguments into the last parameter when it is marked up with . + true if method can be called with given arguments, false otherwise. + + + + Compares two sets of parameters to determine + which one suits better for given argument types. + + + + + Returns a best method overload for given argument . + + List of method candidates. + Argument types. + Best method overload, or null if none matched. + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The is used to load the assembly. + + + + diff --git a/packages/Newtonsoft.Json.10.0.3/lib/netstandard1.3/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.10.0.3/lib/netstandard1.3/Newtonsoft.Json.dll new file mode 100644 index 0000000..96725e6 Binary files /dev/null and b/packages/Newtonsoft.Json.10.0.3/lib/netstandard1.3/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.10.0.3/lib/netstandard1.3/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.10.0.3/lib/netstandard1.3/Newtonsoft.Json.xml new file mode 100644 index 0000000..6aae8c6 --- /dev/null +++ b/packages/Newtonsoft.Json.10.0.3/lib/netstandard1.3/Newtonsoft.Json.xml @@ -0,0 +1,10559 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets a value indicating whether integer values are allowed when deserializing. + + true if integers are allowed when deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the used when serializing the property's collection items. + + The collection's items . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Gets or sets how null values are handled during serialization and deserialization. + + + + + Gets or sets how default values are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + + The JSON line info handling. + + + + Specifies the settings used when merging JSON. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Allows users to control class loading and mandate what class to load. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Specifies what messages to output for the class. + + + + + Output no tracing and debugging messages. + + + + + Output error-handling messages. + + + + + Output warnings and error-handling messages. + + + + + Output informational messages, warnings, and error-handling messages. + + + + + Output all debugging and tracing messages. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Gets a dictionary of the names and values of an type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + List of primitive types which can be widened. + + + + + Widening masks for primitive types above. + Index of the value in this array defines a type we're widening, + while the bits in mask define types it can be widened to (including itself). + + For example, value at index 0 defines a bool type, and it only has bit 0 set, + i.e. bool values can be assigned only to bool. + + + + + Checks if value of primitive type can be + assigned to parameter of primitive type . + + Source primitive type. + Target primitive type. + true if source type can be widened to target type, false otherwise. + + + + Checks if a set of values with given can be used + to invoke a method with specified . + + Method parameters. + Argument types. + Try to pack extra arguments into the last parameter when it is marked up with . + true if method can be called with given arguments, false otherwise. + + + + Compares two sets of parameters to determine + which one suits better for given argument types. + + + + + Returns a best method overload for given argument . + + List of method candidates. + Argument types. + Best method overload, or null if none matched. + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The is used to load the assembly. + + + + diff --git a/packages/Newtonsoft.Json.10.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.10.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll new file mode 100644 index 0000000..e9e9a4a Binary files /dev/null and b/packages/Newtonsoft.Json.10.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.10.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.10.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml new file mode 100644 index 0000000..9550e31 --- /dev/null +++ b/packages/Newtonsoft.Json.10.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml @@ -0,0 +1,8555 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets a value indicating whether integer values are allowed when deserializing. + + true if integers are allowed when deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the used when serializing the property's collection items. + + The collection's items . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Gets or sets how null values are handled during serialization and deserialization. + + + + + Gets or sets how default values are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Represents a JSON property. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a raw JSON string. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + + The JSON line info handling. + + + + Specifies the settings used when merging JSON. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Represents an abstract JSON token. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Allows users to control class loading and mandate what class to load. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Specifies what messages to output for the class. + + + + + Output no tracing and debugging messages. + + + + + Output error-handling messages. + + + + + Output warnings and error-handling messages. + + + + + Output informational messages, warnings, and error-handling messages. + + + + + Output all debugging and tracing messages. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Gets a dictionary of the names and values of an type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The is used to load the assembly. + + + + diff --git a/packages/Newtonsoft.Json.10.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.10.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll new file mode 100644 index 0000000..4b0917a Binary files /dev/null and b/packages/Newtonsoft.Json.10.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.10.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.10.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml new file mode 100644 index 0000000..f7a4e30 --- /dev/null +++ b/packages/Newtonsoft.Json.10.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml @@ -0,0 +1,10467 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets a value indicating whether integer values are allowed when deserializing. + + true if integers are allowed when deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the used when serializing the property's collection items. + + The collection's items . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Gets or sets how null values are handled during serialization and deserialization. + + + + + Gets or sets how default values are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Indicates how JSON text output is formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled during serialization and deserialization. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asychronousity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + + The JSON line info handling. + + + + Specifies the settings used when merging JSON. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Allows users to control class loading and mandate what class to load. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Specifies what messages to output for the class. + + + + + Output no tracing and debugging messages. + + + + + Output error-handling messages. + + + + + Output warnings and error-handling messages. + + + + + Output informational messages, warnings, and error-handling messages. + + + + + Output all debugging and tracing messages. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Gets a dictionary of the names and values of an type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + List of primitive types which can be widened. + + + + + Widening masks for primitive types above. + Index of the value in this array defines a type we're widening, + while the bits in mask define types it can be widened to (including itself). + + For example, value at index 0 defines a bool type, and it only has bit 0 set, + i.e. bool values can be assigned only to bool. + + + + + Checks if value of primitive type can be + assigned to parameter of primitive type . + + Source primitive type. + Target primitive type. + true if source type can be widened to target type, false otherwise. + + + + Checks if a set of values with given can be used + to invoke a method with specified . + + Method parameters. + Argument types. + Try to pack extra arguments into the last parameter when it is marked up with . + true if method can be called with given arguments, false otherwise. + + + + Compares two sets of parameters to determine + which one suits better for given argument types. + + + + + Returns a best method overload for given argument . + + List of method candidates. + Argument types. + Best method overload, or null if none matched. + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The is used to load the assembly. + + + + diff --git a/packages/Newtonsoft.Json.10.0.3/tools/install.ps1 b/packages/Newtonsoft.Json.10.0.3/tools/install.ps1 new file mode 100644 index 0000000..0cebb5e --- /dev/null +++ b/packages/Newtonsoft.Json.10.0.3/tools/install.ps1 @@ -0,0 +1,116 @@ +param($installPath, $toolsPath, $package, $project) + +# open json.net splash page on package install +# don't open if json.net is installed as a dependency + +try +{ + $url = "http://www.newtonsoft.com/json/install?version=" + $package.Version + $dte2 = Get-Interface $dte ([EnvDTE80.DTE2]) + + if ($dte2.ActiveWindow.Caption -eq "Package Manager Console") + { + # user is installing from VS NuGet console + # get reference to the window, the console host and the input history + # show webpage if "install-package newtonsoft.json" was last input + + $consoleWindow = $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]) + + $props = $consoleWindow.GetType().GetProperties([System.Reflection.BindingFlags]::Instance -bor ` + [System.Reflection.BindingFlags]::NonPublic) + + $prop = $props | ? { $_.Name -eq "ActiveHostInfo" } | select -first 1 + if ($prop -eq $null) { return } + + $hostInfo = $prop.GetValue($consoleWindow) + if ($hostInfo -eq $null) { return } + + $history = $hostInfo.WpfConsole.InputHistory.History + + $lastCommand = $history | select -last 1 + + if ($lastCommand) + { + $lastCommand = $lastCommand.Trim().ToLower() + if ($lastCommand.StartsWith("install-package") -and $lastCommand.Contains("newtonsoft.json")) + { + $dte2.ItemOperations.Navigate($url) | Out-Null + } + } + } + else + { + # user is installing from VS NuGet dialog + # get reference to the window, then smart output console provider + # show webpage if messages in buffered console contains "installing...newtonsoft.json" in last operation + + $instanceField = [NuGet.Dialog.PackageManagerWindow].GetField("CurrentInstance", [System.Reflection.BindingFlags]::Static -bor ` + [System.Reflection.BindingFlags]::NonPublic) + + $consoleField = [NuGet.Dialog.PackageManagerWindow].GetField("_smartOutputConsoleProvider", [System.Reflection.BindingFlags]::Instance -bor ` + [System.Reflection.BindingFlags]::NonPublic) + + if ($instanceField -eq $null -or $consoleField -eq $null) { return } + + $instance = $instanceField.GetValue($null) + + if ($instance -eq $null) { return } + + $consoleProvider = $consoleField.GetValue($instance) + if ($consoleProvider -eq $null) { return } + + $console = $consoleProvider.CreateOutputConsole($false) + + $messagesField = $console.GetType().GetField("_messages", [System.Reflection.BindingFlags]::Instance -bor ` + [System.Reflection.BindingFlags]::NonPublic) + if ($messagesField -eq $null) { return } + + $messages = $messagesField.GetValue($console) + if ($messages -eq $null) { return } + + $operations = $messages -split "==============================" + + $lastOperation = $operations | select -last 1 + + if ($lastOperation) + { + $lastOperation = $lastOperation.ToLower() + + $lines = $lastOperation -split "`r`n" + + $installMatch = $lines | ? { $_.StartsWith("------- installing...newtonsoft.json ") } | select -first 1 + + if ($installMatch) + { + $dte2.ItemOperations.Navigate($url) | Out-Null + } + } + } +} +catch +{ + try + { + $pmPane = $dte2.ToolWindows.OutputWindow.OutputWindowPanes.Item("Package Manager") + + $selection = $pmPane.TextDocument.Selection + $selection.StartOfDocument($false) + $selection.EndOfDocument($true) + + if ($selection.Text.StartsWith("Attempting to gather dependencies information for package 'Newtonsoft.Json." + $package.Version + "'")) + { + # don't show on upgrade + if (!$selection.Text.Contains("Removed package")) + { + $dte2.ItemOperations.Navigate($url) | Out-Null + } + } + } + catch + { + # stop potential errors from bubbling up + # worst case the splash page won't open + } +} + +# still yolo \ No newline at end of file diff --git a/packages/NoGit.0.1.0/NoGit.0.1.0.nupkg b/packages/NoGit.0.1.0/NoGit.0.1.0.nupkg new file mode 100644 index 0000000..2ec901a Binary files /dev/null and b/packages/NoGit.0.1.0/NoGit.0.1.0.nupkg differ diff --git a/packages/NoGit.0.1.0/content/.bin/git.cmd b/packages/NoGit.0.1.0/content/.bin/git.cmd new file mode 100644 index 0000000..3b995c2 --- /dev/null +++ b/packages/NoGit.0.1.0/content/.bin/git.cmd @@ -0,0 +1,3 @@ +@echo off +SET PATH=%~dp0;%PATH% +"%~dp0node" "%~dp0..\..\packages\NoGit.0.1.0\node_modules\nogit\bin\git.js" %* \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/archiver/LICENSE b/packages/NoGit.0.1.0/node_modules/archiver/LICENSE new file mode 100644 index 0000000..88caf87 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/archiver/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2012-2014 Chris Talkington, contributors. + +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. \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/archiver/README.md b/packages/NoGit.0.1.0/node_modules/archiver/README.md new file mode 100644 index 0000000..ab53a8d --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/archiver/README.md @@ -0,0 +1,215 @@ +# Archiver v0.14.4 [![Build Status](https://travis-ci.org/archiverjs/node-archiver.svg?branch=master)](https://travis-ci.org/archiverjs/node-archiver) + +a streaming interface for archive generation + +[![NPM](https://nodei.co/npm/archiver.png)](https://nodei.co/npm/archiver/) + +## Install + +```bash +npm install archiver --save +``` + +You can also use `npm install https://github.com/archiverjs/node-archiver/archive/master.tar.gz` to test upcoming versions. + +## Archiver + +#### create(format, options) + +Creates an Archiver instance based on the format (zip, tar, etc) passed. Parameters can be passed directly to `Archiver` constructor for convenience. + +#### registerFormat(format, module) + +Registers an archive format. Format modules are essentially transform streams with a few required methods. They will be further documented once a formal spec is in place. + +### Instance Methods + +Inherits [Transform Stream](http://nodejs.org/api/stream.html#stream_class_stream_transform) methods. + +#### abort() + +Aborts the archiving process, taking a best-effort approach, by: + +* removing any pending queue tasks +* allowing any active queue workers to finish +* detaching internal module pipes +* ending both sides of the Transform stream + +*It will NOT drain any remaining sources.* + +#### append(input, data) + +Appends an input source (text string, buffer, or stream) to the instance. When the instance has received, processed, and emitted the input, the `entry` event is fired. + +Replaced `#addFile` in v0.5. + +```js +archive.append('string', { name:'string.txt' }); +archive.append(new Buffer('string'), { name:'buffer.txt' }); +archive.append(fs.createReadStream('mydir/file.txt'), { name:'stream.txt' }); +archive.append(null, { name:'dir/' }); +``` + +#### bulk(mappings) + +Appends multiple entries from passed array of src-dest mappings. A [lazystream](https://github.com/jpommerening/node-lazystream) wrapper is used to prevent issues with open file limits. + +Globbing patterns are supported through use of the bundled [file-utils](https://github.com/SBoudrias/file-utils) module. + +The `data` property can be set (per src-dest mapping) to define data for matched entries. + +```js +archive.bulk([ + { src: ['mydir/**'], data: { date: new Date() } }, + { expand: true, cwd: 'mydir', src: ['**'], dest: 'newdir' } +]); +``` + +For more detail on this feature, please see [BULK.md](https://github.com/archiverjs/node-archiver/blob/master/BULK.md). + +#### directory(dirpath[, destpath, data]) + +Appends a directory and its files, recusively, given its dirpath. This is meant to be a simplier approach to something previously only possible with `bulk`. The use of `destpath` allows one to define a custom destination path within the resulting archive and `data` allows for setting data on each entry appended. + +```js +// mydir/ -> archive.ext/mydir/ +archive.directory('mydir'); + +// mydir/ -> archive.ext/abc/ +archive.directory('mydir', 'abc'); + +// mydir/ -> archive.ext/ +archive.directory('mydir', false, { date: new Date() }); +``` + +#### file(filepath, data) + +Appends a file given its filepath using a [lazystream](https://github.com/jpommerening/node-lazystream) wrapper to prevent issues with open file limits. When the instance has received, processed, and emitted the file, the `entry` event is fired. + +```js +archive.file('mydir/file.txt', { name:'file.txt' }); +``` + +#### finalize() + +Finalizes the instance and prevents further appending to the archive structure (queue will continue til drained). The `end`, `close` or `finish` events on the destination stream may fire right after calling this method so you should set listeners beforehand to properly detect stream completion. + +*You must call this method to get a valid archive and end the instance stream.* + +#### pointer() + +Returns the current byte length emitted by archiver. Use this in your end callback to log generated size. + +## Events + +Inherits [Transform Stream](http://nodejs.org/api/stream.html#stream_class_stream_transform) events. + +#### entry + +Fired when the entry's input has been processed and appended to the archive. Passes entry data as first argument. + +## Zip + +### Options + +#### comment `string` + +Sets the zip comment. + +#### statConcurrency `number` + +Sets the number of workers used to process the internal fs stat queue. Defaults to 4. + +#### store `boolean` + +If true, all entries will be archived without compression. Defaults to `false`. + +#### zlib `object` + +Passed to node's [zlib](http://nodejs.org/api/zlib.html#zlib_options) module to control compression. Options may vary by node version. + +### Entry Data + +#### name `string` `required` + +Sets the entry name including internal path. + +#### date `string|Date` + +Sets the entry date. This can be any valid date string or instance. Defaults to current time in locale. + +When using the `bulk` or `file` methods, fs stat data is used as the default value. + +#### store `boolean` + +If true, this entry will be archived without compression. Defaults to global `store` option. + +#### comment `string` + +Sets the entry comment. + +#### mode `number` + +Sets the entry permissions. Defaults to octal 0755 (directory) or 0644 (file). + +When using the `bulk` or `file` methods, fs stat data is used as the default value. + +#### stats `fs.Stats` + +Sets the fs stat data for this entry. This allows for reduction of fs stat calls when stat data is already known. + +## Tar + +### Options + +#### gzip `boolean` + +Compresses the tar archive using gzip, default is false. + +#### gzipOptions `object` + +Passed to node's [zlib](http://nodejs.org/api/zlib.html#zlib_options) module to control compression. Options may vary by node version. + +#### statConcurrency `number` + +Sets the number of workers used to process the internal fs stat queue. Defaults to 4. + +### Entry Data + +#### name `string` `required` + +Sets the entry name including internal path. + +#### date `string|Date` + +Sets the entry date. This can be any valid date string or instance. Defaults to current time in locale. + +When using the `bulk` or `file` methods, fs stat data is used as the default value. + +#### mode `number` + +Sets the entry permissions. Defaults to octal 0755 (directory) or 0644 (file). + +When using the `bulk` or `file` methods, fs stat data is used as the default value. + +#### stats `fs.Stats` + +Sets the fs stat data for this entry. This allows for reduction of fs stat calls when stat data is already known. + +## Custom Formats + +Archiver ships with out of the box support for TAR and ZIP archives. You can register additional formats with `registerFormat`. + +## Libraries + +Archiver makes use of several libraries/modules to avoid duplication of efforts. + +- [zip-stream](https://npmjs.org/package/zip-stream) +- [tar-stream](https://npmjs.org/package/tar-stream) + +## Things of Interest + +- [Examples](https://github.com/archiverjs/node-archiver/blob/master/examples) +- [Changelog](https://github.com/archiverjs/node-archiver/releases) +- [Contributing](https://github.com/archiverjs/node-archiver/blob/master/CONTRIBUTING.md) +- [MIT License](https://github.com/archiverjs/node-archiver/blob/master/LICENSE-MIT) \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/archiver/lib/archiver.js b/packages/NoGit.0.1.0/node_modules/archiver/lib/archiver.js new file mode 100644 index 0000000..d07f636 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/archiver/lib/archiver.js @@ -0,0 +1,51 @@ +/** + * node-archiver + * + * Copyright (c) 2012-2014 Chris Talkington, contributors. + * Licensed under the MIT license. + * https://github.com/archiverjs/node-archiver/blob/master/LICENSE-MIT + */ +var ArchiverCore = require('./core'); +var formats = {}; + +var archiver = module.exports = function(format, options) { + return archiver.create(format, options); +}; + +archiver.create = function(format, options) { + if (formats[format]) { + var instance = new ArchiverCore(options); + instance.setFormat(format); + instance.setModule(new formats[format](options)); + + return instance; + } else { + throw new Error('create(' + format + '): format not registered'); + } +}; + +archiver.registerFormat = function(format, module) { + if (formats[format]) { + throw new Error('register(' + format + '): format already registered'); + } + + if (typeof module !== 'function') { + throw new Error('register(' + format + '): format module invalid'); + } + + if (typeof module.prototype.append !== 'function' || typeof module.prototype.finalize !== 'function') { + throw new Error('register(' + format + '): format module missing methods'); + } + + formats[format] = module; + + // backwards compat - to be removed in 0.14 + var compatName = 'create' + format.charAt(0).toUpperCase() + format.slice(1); + archiver[compatName] = function(options) { + return archiver.create(format, options); + }; +}; + +archiver.registerFormat('zip', require('./plugins/zip')); +archiver.registerFormat('tar', require('./plugins/tar')); +archiver.registerFormat('json', require('./plugins/json')); \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/archiver/lib/core.js b/packages/NoGit.0.1.0/node_modules/archiver/lib/core.js new file mode 100644 index 0000000..eba4534 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/archiver/lib/core.js @@ -0,0 +1,488 @@ +/** + * node-archiver + * + * Copyright (c) 2012-2014 Chris Talkington, contributors. + * Licensed under the MIT license. + * https://github.com/archiverjs/node-archiver/blob/master/LICENSE-MIT + */ +var fs = require('fs'); +var inherits = require('util').inherits; +var Transform = require('readable-stream').Transform; + +var async = require('async'); + +var util = require('./util'); + +var Archiver = module.exports = function(options) { + if (!(this instanceof Archiver)) { + return new Archiver(options); + } + + options = this.options = util.defaults(options, { + highWaterMark: 1024 * 1024, + statConcurrency: 4 + }); + + Transform.call(this, options); + + this._entries = []; + this._format = false; + this._module = false; + this._pending = 0; + this._pointer = 0; + + this._queue = async.queue(this._onQueueTask.bind(this), 1); + this._queue.drain = this._onQueueDrain.bind(this); + + this._statQueue = async.queue(this._onStatQueueTask.bind(this), options.statConcurrency); + + this._state = { + aborted: false, + finalize: false, + finalizing: false, + finalized: false, + modulePiped: false + }; +}; + +inherits(Archiver, Transform); + +Archiver.prototype._abort = function() { + this._state.aborted = true; + this._queue.kill(); + this._statQueue.kill(); + + if (this._queue.idle()) { + this._shutdown(); + } +}; + +Archiver.prototype._append = function(filepath, data) { + data = data || {}; + + var task = { + source: null, + filepath: filepath + }; + + if (!data.name) { + data.name = filepath; + } + + data.sourcePath = filepath; + task.data = data; + + if (data.stats && data.stats instanceof fs.Stats) { + task = this._updateQueueTaskWithStats(task, data.stats); + this._queue.push(task); + } else { + this._statQueue.push(task); + } +}; + +Archiver.prototype._finalize = function() { + if (this._state.finalizing || this._state.finalized || this._state.aborted) { + return; + } + + this._state.finalizing = true; + + this._moduleFinalize(); + + this._state.finalizing = false; + this._state.finalized = true; +}; + +Archiver.prototype._maybeFinalize = function() { + if (this._state.finalizing || this._state.finalized || this._state.aborted) { + return false; + } + + if (this._state.finalize && this._pending === 0 && this._queue.idle() && this._statQueue.idle()) { + this._finalize(); + return true; + } + + return false; +}; + +Archiver.prototype._moduleAppend = function(source, data, callback) { + if (this._state.aborted) { + callback(); + return; + } + + this._module.append(source, data, function(err) { + this._task = null; + + if (this._state.aborted) { + this._shutdown(); + return; + } + + if (err) { + this.emit('error', err); + setImmediate(callback); + return; + } + + this.emit('entry', data); + this._entries.push(data); + + setImmediate(callback); + }.bind(this)); +}; + +Archiver.prototype._moduleFinalize = function() { + if (typeof this._module.finalize === 'function') { + this._module.finalize(); + } else if (typeof this._module.end === 'function') { + this._module.end(); + } else { + this.emit('error', new Error('module: no suitable finalize/end method found')); + return; + } +}; + +Archiver.prototype._modulePipe = function() { + this._module.on('error', this._onModuleError.bind(this)); + this._module.pipe(this); + this._state.modulePiped = true; +}; + +Archiver.prototype._moduleSupports = function(key) { + if (!this._module.supports || !this._module.supports[key]) { + return false; + } + + return this._module.supports[key]; +}; + +Archiver.prototype._moduleUnpipe = function() { + this._module.unpipe(this); + this._state.modulePiped = false; +}; + +Archiver.prototype._normalizeEntryData = function(data, stats) { + data = util.defaults(data, { + type: 'file', + name: null, + date: null, + mode: null, + sourcePath: null, + stats: false + }); + + if (stats && data.stats === false) { + data.stats = stats; + } + + var isDir = data.type === 'directory'; + + if (data.name) { + data.name = util.sanitizePath(data.name); + + if (data.name.slice(-1) === '/') { + isDir = true; + data.type = 'directory'; + } else if (isDir) { + data.name += '/'; + } + } + + if (typeof data.mode === 'number') { + data.mode &= 0777; + } else if (data.stats && data.mode === null) { + data.mode = data.stats.mode & 0777; + } else if (data.mode === null) { + data.mode = isDir ? 0755 : 0644; + } + + if (data.stats && data.date === null) { + data.date = data.stats.mtime; + } else { + data.date = util.dateify(data.date); + } + + return data; +}; + +Archiver.prototype._onModuleError = function(err) { + this.emit('error', err); +}; + +Archiver.prototype._onQueueDrain = function() { + if (this._state.finalizing || this._state.finalized || this._state.aborted) { + return; + } + + if (this._state.finalize && this._pending === 0 && this._queue.idle() && this._statQueue.idle()) { + this._finalize(); + return; + } +}; + +Archiver.prototype._onQueueTask = function(task, callback) { + if (this._state.finalizing || this._state.finalized || this._state.aborted) { + callback(); + return; + } + + this._task = task; + this._moduleAppend(task.source, task.data, callback); +}; + +Archiver.prototype._onStatQueueTask = function(task, callback) { + if (this._state.finalizing || this._state.finalized || this._state.aborted) { + callback(); + return; + } + + fs.stat(task.filepath, function(err, stats) { + if (this._state.aborted) { + setImmediate(callback); + return; + } + + if (err) { + this.emit('error', err); + setImmediate(callback); + return; + } + + task = this._updateQueueTaskWithStats(task, stats); + + if (task.source !== null) { + this._queue.push(task); + setImmediate(callback); + } else { + this.emit('error', new Error('unsupported entry: ' + task.filepath)); + setImmediate(callback); + return; + } + }.bind(this)); +}; + +Archiver.prototype._shutdown = function() { + this._moduleUnpipe(); + this.end(); +}; + +Archiver.prototype._transform = function(chunk, encoding, callback) { + if (chunk) { + this._pointer += chunk.length; + } + + callback(null, chunk); +}; + +Archiver.prototype._updateQueueTaskWithStats = function(task, stats) { + if (stats.isFile()) { + task.data.type = 'file'; + task.data.sourceType = 'stream'; + task.source = util.lazyReadStream(task.filepath); + } else if (stats.isDirectory() && this._moduleSupports('directory')) { + task.data.name = util.trailingSlashIt(task.data.name); + task.data.type = 'directory'; + task.data.sourcePath = util.trailingSlashIt(task.filepath); + task.data.sourceType = 'buffer'; + task.source = new Buffer(0); + } else { + return task; + } + + task.data = this._normalizeEntryData(task.data, stats); + return task; +}; + +Archiver.prototype.abort = function() { + if (this._state.aborted || this._state.finalized) { + return this; + } + + this._abort(); + + return this; +}; + +Archiver.prototype.append = function(source, data) { + if (this._state.finalize || this._state.aborted) { + this.emit('error', new Error('append: queue closed')); + return this; + } + + data = this._normalizeEntryData(data); + + if (typeof data.name !== 'string' || data.name.length === 0) { + this.emit('error', new Error('append: entry name must be a non-empty string value')); + return this; + } + + if (data.type === 'directory' && !this._moduleSupports('directory')) { + this.emit('error', new Error('append: entries of "directory" type not currently supported by this module')); + return this; + } + + source = util.normalizeInputSource(source); + + if (Buffer.isBuffer(source)) { + data.sourceType = 'buffer'; + } else if (util.isStream(source)) { + data.sourceType = 'stream'; + } else { + this.emit('error', new Error('append: input source must be valid Stream or Buffer instance')); + return this; + } + + this._queue.push({ + data: data, + source: source + }); + + return this; +}; + +Archiver.prototype.bulk = function(mappings) { + if (this._state.finalize || this._state.aborted) { + this.emit('error', new Error('bulk: queue closed')); + return this; + } + + if (!Array.isArray(mappings)) { + mappings = [mappings]; + } + + var self = this; + var files = util.file.normalizeFilesArray(mappings); + + files.forEach(function(file){ + var isExpandedPair = file.orig.expand || false; + var fileData = file.data || {}; + + file.src.forEach(function(filepath) { + var data = util._.extend({}, fileData); + data.name = isExpandedPair ? util.unixifyPath(file.dest) : util.unixifyPath(file.dest || '', filepath); + + if (data.name === '.') { + return; + } + + self._append(filepath, data); + }); + }); + + return this; +}; + +Archiver.prototype.directory = function(dirpath, destpath, data) { + if (this._state.finalize || this._state.aborted) { + this.emit('error', new Error('directory: queue closed')); + return this; + } + + if (typeof dirpath !== 'string' || dirpath.length === 0) { + this.emit('error', new Error('directory: dirpath must be a non-empty string value')); + return this; + } + + this._pending++; + + if (destpath === false) { + destpath = ''; + } else if (typeof destpath !== 'string'){ + destpath = dirpath; + } + + if (typeof data !== 'object') { + data = {}; + } + + var self = this; + + util.walkdir(dirpath, function(err, results) { + if (err) { + self.emit('error', err); + } else { + results.forEach(function(file) { + var entryData = util._.extend({}, data); + entryData.name = util.sanitizePath(destpath, file.relative); + entryData.stats = file.stats; + + self._append(file.path, entryData); + }); + } + + self._pending--; + self._maybeFinalize(); + }); + + return this; +}; + +Archiver.prototype.file = function(filepath, data) { + if (this._state.finalize || this._state.aborted) { + this.emit('error', new Error('file: queue closed')); + return this; + } + + if (typeof filepath !== 'string' || filepath.length === 0) { + this.emit('error', new Error('file: filepath must be a non-empty string value')); + return this; + } + + this._append(filepath, data); + + return this; +}; + +Archiver.prototype.finalize = function() { + if (this._state.aborted) { + this.emit('error', new Error('finalize: archive was aborted')); + return this; + } + + if (this._state.finalize) { + this.emit('error', new Error('finalize: archive already finalizing')); + return this; + } + + this._state.finalize = true; + + if (this._pending === 0 && this._queue.idle() && this._statQueue.idle()) { + this._finalize(); + } + + return this; +}; + +Archiver.prototype.setFormat = function(format) { + if (this._format) { + this.emit('error', new Error('format: archive format already set')); + return this; + } + + this._format = format; + + return this; +}; + +Archiver.prototype.setModule = function(module) { + if (this._state.aborted) { + this.emit('error', new Error('module: archive was aborted')); + return this; + } + + if (this._state.module) { + this.emit('error', new Error('module: module already set')); + return this; + } + + this._module = module; + this._modulePipe(); + + return this; +}; + +Archiver.prototype.pointer = function() { + return this._pointer; +}; \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/archiver/lib/plugins/json.js b/packages/NoGit.0.1.0/node_modules/archiver/lib/plugins/json.js new file mode 100644 index 0000000..b6acc12 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/archiver/lib/plugins/json.js @@ -0,0 +1,70 @@ +/** + * node-archiver + * + * Copyright (c) 2012-2014 Chris Talkington, contributors. + * Licensed under the MIT license. + * https://github.com/archiverjs/node-archiver/blob/master/LICENSE-MIT + */ +var inherits = require('util').inherits; +var Transform = require('readable-stream').Transform; + +var crc32 = require('buffer-crc32'); +var util = require('../util'); + +var Json = module.exports = function(options) { + if (!(this instanceof Json)) { + return new Json(options); + } + + options = this.options = util.defaults(options, {}); + + Transform.call(this, options); + + this.supports = { + directory: true + }; + + this.files = []; +}; + +inherits(Json, Transform); + +Json.prototype._transform = function(chunk, encoding, callback) { + callback(null, chunk); +}; + +Json.prototype._writeStringified = function() { + var fileString = JSON.stringify(this.files); + this.write(fileString); +}; + +Json.prototype.append = function(source, data, callback) { + var self = this; + + data.crc32 = 0; + + function onend(err, sourceBuffer) { + if (err) { + callback(err); + return; + } + + data.size = sourceBuffer.length || 0; + data.crc32 = crc32.unsigned(sourceBuffer); + + self.files.push(data); + + callback(null, data); + } + + if (data.sourceType === 'buffer') { + onend(null, source); + } else if (data.sourceType === 'stream') { + util.collectStream(source, onend); + } +}; + +Json.prototype.finalize = function() { + this._writeStringified(); + this.end(); +}; \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/archiver/lib/plugins/tar.js b/packages/NoGit.0.1.0/node_modules/archiver/lib/plugins/tar.js new file mode 100644 index 0000000..a672bd4 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/archiver/lib/plugins/tar.js @@ -0,0 +1,96 @@ +/** + * node-archiver + * + * Copyright (c) 2012-2014 Chris Talkington, contributors. + * Licensed under the MIT license. + * https://github.com/archiverjs/node-archiver/blob/master/LICENSE-MIT + */ +var zlib = require('zlib'); + +var engine = require('tar-stream'); +var util = require('../util'); + +var Tar = module.exports = function(options) { + if (!(this instanceof Tar)) { + return new Tar(options); + } + + options = this.options = util.defaults(options, { + gzip: false + }); + + if (typeof options.gzipOptions !== 'object') { + options.gzipOptions = {}; + } + + this.supports = { + directory: true + }; + + this.engine = engine.pack(options); + this.compressor = false; + + if (options.gzip) { + this.compressor = zlib.createGzip(options.gzipOptions); + this.compressor.on('error', this._onCompressorError.bind(this)); + } +}; + +Tar.prototype._onCompressorError = function(err) { + this.engine.emit('error', err); +}; + +Tar.prototype.append = function(source, data, callback) { + var self = this; + + data.mtime = data.date; + + function append(err, sourceBuffer) { + if (err) { + callback(err); + return; + } + + self.engine.entry(data, sourceBuffer, function(err) { + callback(err, data); + }); + } + + if (data.sourceType === 'buffer') { + append(null, source); + } else if (data.sourceType === 'stream' && data._stats) { + data.size = data._stats.size; + + var entry = self.engine.entry(data, function(err) { + callback(err, data); + }); + + source.pipe(entry); + } else if (data.sourceType === 'stream') { + util.collectStream(source, append); + } +}; + +Tar.prototype.finalize = function() { + this.engine.finalize(); +}; + +Tar.prototype.on = function() { + return this.engine.on.apply(this.engine, arguments); +}; + +Tar.prototype.pipe = function(destination, options) { + if (this.compressor) { + return this.engine.pipe.apply(this.engine, [this.compressor]).pipe(destination, options); + } else { + return this.engine.pipe.apply(this.engine, arguments); + } +}; + +Tar.prototype.unpipe = function() { + if (this.compressor) { + return this.compressor.unpipe.apply(this.compressor, arguments); + } else { + return this.engine.unpipe.apply(this.engine, arguments); + } +}; \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/archiver/lib/plugins/zip.js b/packages/NoGit.0.1.0/node_modules/archiver/lib/plugins/zip.js new file mode 100644 index 0000000..b55d910 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/archiver/lib/plugins/zip.js @@ -0,0 +1,47 @@ +/** + * node-archiver + * + * Copyright (c) 2012-2014 Chris Talkington, contributors. + * Licensed under the MIT license. + * https://github.com/archiverjs/node-archiver/blob/master/LICENSE-MIT + */ +var engine = require('zip-stream'); +var util = require('../util'); + +var Zip = module.exports = function(options) { + if (!(this instanceof Zip)) { + return new Zip(options); + } + + options = this.options = util.defaults(options, { + comment: '', + forceUTC: false, + store: false + }); + + this.supports = { + directory: true + }; + + this.engine = new engine(options); +}; + +Zip.prototype.append = function(source, data, callback) { + this.engine.entry(source, data, callback); +}; + +Zip.prototype.finalize = function() { + this.engine.finalize(); +}; + +Zip.prototype.on = function() { + return this.engine.on.apply(this.engine, arguments); +}; + +Zip.prototype.pipe = function() { + return this.engine.pipe.apply(this.engine, arguments); +}; + +Zip.prototype.unpipe = function() { + return this.engine.unpipe.apply(this.engine, arguments); +}; \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/archiver/lib/util/file.js b/packages/NoGit.0.1.0/node_modules/archiver/lib/util/file.js new file mode 100644 index 0000000..425895f --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/archiver/lib/util/file.js @@ -0,0 +1,206 @@ +/** + * node-archiver + * + * Copyright (c) 2012-2014 Chris Talkington, contributors. + * Licensed under the MIT license. + * https://github.com/archiverjs/node-archiver/blob/master/LICENSE-MIT + */ +var fs = require('fs'); +var path = require('path'); + +var _ = require('lodash'); +var glob = require('glob'); + +var file = module.exports = {}; + +var pathSeparatorRe = /[\/\\]/g; + +// Process specified wildcard glob patterns or filenames against a +// callback, excluding and uniquing files in the result set. +var processPatterns = function(patterns, fn) { + // Filepaths to return. + var result = []; + // Iterate over flattened patterns array. + _.flatten(patterns).forEach(function(pattern) { + // If the first character is ! it should be omitted + var exclusion = pattern.indexOf('!') === 0; + // If the pattern is an exclusion, remove the ! + if (exclusion) { pattern = pattern.slice(1); } + // Find all matching files for this pattern. + var matches = fn(pattern); + if (exclusion) { + // If an exclusion, remove matching files. + result = _.difference(result, matches); + } else { + // Otherwise add matching files. + result = _.union(result, matches); + } + }); + return result; +}; + +// True if the file path exists. +file.exists = function() { + var filepath = path.join.apply(path, arguments); + return fs.existsSync(filepath); +}; + +// Return an array of all file paths that match the given wildcard patterns. +file.expand = function() { + var args = _.toArray(arguments); + // If the first argument is an options object, save those options to pass + // into the File.prototype.glob.sync method. + var options = _.isPlainObject(args[0]) ? args.shift() : {}; + // Use the first argument if it's an Array, otherwise convert the arguments + // object to an array and use that. + var patterns = Array.isArray(args[0]) ? args[0] : args; + // Return empty set if there are no patterns or filepaths. + if (patterns.length === 0) { return []; } + // Return all matching filepaths. + var matches = processPatterns(patterns, function(pattern) { + // Find all matching files for this pattern. + return glob.sync(pattern, options); + }); + // Filter result set? + if (options.filter) { + matches = matches.filter(function(filepath) { + filepath = path.join(options.cwd || '', filepath); + try { + if (typeof options.filter === 'function') { + return options.filter(filepath); + } else { + // If the file is of the right type and exists, this should work. + return fs.statSync(filepath)[options.filter](); + } + } catch(e) { + // Otherwise, it's probably not the right type. + return false; + } + }); + } + return matches; +}; + +// Build a multi task "files" object dynamically. +file.expandMapping = function(patterns, destBase, options) { + options = _.defaults({}, options, { + rename: function(destBase, destPath) { + return path.join(destBase || '', destPath); + } + }); + var files = []; + var fileByDest = {}; + // Find all files matching pattern, using passed-in options. + file.expand(options, patterns).forEach(function(src) { + var destPath = src; + // Flatten? + if (options.flatten) { + destPath = path.basename(destPath); + } + // Change the extension? + if (options.ext) { + destPath = destPath.replace(/(\.[^\/]*)?$/, options.ext); + } + // Generate destination filename. + var dest = options.rename(destBase, destPath, options); + // Prepend cwd to src path if necessary. + if (options.cwd) { src = path.join(options.cwd, src); } + // Normalize filepaths to be unix-style. + dest = dest.replace(pathSeparatorRe, '/'); + src = src.replace(pathSeparatorRe, '/'); + // Map correct src path to dest path. + if (fileByDest[dest]) { + // If dest already exists, push this src onto that dest's src array. + fileByDest[dest].src.push(src); + } else { + // Otherwise create a new src-dest file mapping object. + files.push({ + src: [src], + dest: dest, + }); + // And store a reference for later use. + fileByDest[dest] = files[files.length - 1]; + } + }); + return files; +}; + +// reusing bits of grunt's multi-task source normalization +file.normalizeFilesArray = function(data) { + var files = []; + + data.forEach(function(obj) { + var prop; + if ('src' in obj || 'dest' in obj) { + files.push(obj); + } + }); + + if (files.length === 0) { + return []; + } + + files = _(files).chain().forEach(function(obj) { + if (!('src' in obj) || !obj.src) { return; } + // Normalize .src properties to flattened array. + if (Array.isArray(obj.src)) { + obj.src = _.flatten(obj.src); + } else { + obj.src = [obj.src]; + } + }).map(function(obj) { + // Build options object, removing unwanted properties. + var expandOptions = _.extend({}, obj); + delete expandOptions.src; + delete expandOptions.dest; + + // Expand file mappings. + if (obj.expand) { + return file.expandMapping(obj.src, obj.dest, expandOptions).map(function(mapObj) { + // Copy obj properties to result. + var result = _.extend({}, obj); + // Make a clone of the orig obj available. + result.orig = _.extend({}, obj); + // Set .src and .dest, processing both as templates. + result.src = mapObj.src; + result.dest = mapObj.dest; + // Remove unwanted properties. + ['expand', 'cwd', 'flatten', 'rename', 'ext'].forEach(function(prop) { + delete result[prop]; + }); + return result; + }); + } + + // Copy obj properties to result, adding an .orig property. + var result = _.extend({}, obj); + // Make a clone of the orig obj available. + result.orig = _.extend({}, obj); + + if ('src' in result) { + // Expose an expand-on-demand getter method as .src. + Object.defineProperty(result, 'src', { + enumerable: true, + get: function fn() { + var src; + if (!('result' in fn)) { + src = obj.src; + // If src is an array, flatten it. Otherwise, make it into an array. + src = Array.isArray(src) ? _.flatten(src) : [src]; + // Expand src files, memoizing result. + fn.result = file.expand(expandOptions, src); + } + return fn.result; + } + }); + } + + if ('dest' in result) { + result.dest = obj.dest; + } + + return result; + }).flatten().value(); + + return files; +}; \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/archiver/lib/util/index.js b/packages/NoGit.0.1.0/node_modules/archiver/lib/util/index.js new file mode 100644 index 0000000..0e5251e --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/archiver/lib/util/index.js @@ -0,0 +1,149 @@ +/** + * node-archiver + * + * Copyright (c) 2012-2014 Chris Talkington, contributors. + * Licensed under the MIT license. + * https://github.com/archiverjs/node-archiver/blob/master/LICENSE-MIT + */ +var fs = require('fs'); +var path = require('path'); + +var Stream = require('stream').Stream; +var PassThrough = require('readable-stream').PassThrough; + +var util = module.exports = {}; + +util._ = require('lodash'); +util.lazystream = require('lazystream'); +util.file = require('./file'); + +util.collectStream = function(source, callback) { + var collection = []; + var size = 0; + + source.on('error', callback); + + source.on('data', function(chunk) { + collection.push(chunk); + size += chunk.length; + }); + + source.on('end', function() { + var buf = new Buffer(size, 'utf8'); + var offset = 0; + + collection.forEach(function(data) { + data.copy(buf, offset); + offset += data.length; + }); + + callback(null, buf); + }); +}; + +util.dateify = function(dateish) { + dateish = dateish || new Date(); + + if (dateish instanceof Date) { + dateish = dateish; + } else if (typeof dateish === 'string') { + dateish = new Date(dateish); + } else { + dateish = new Date(); + } + + return dateish; +}; + +// this is slightly different from lodash version +util.defaults = function(object, source, guard) { + var args = arguments; + args[0] = args[0] || {}; + + return util._.defaults.apply(util._, args); +}; + +util.isStream = function(source) { + return source instanceof Stream; +}; + +util.lazyReadStream = function(filepath) { + return new util.lazystream.Readable(function() { + return fs.createReadStream(filepath); + }); +}; + +util.normalizeInputSource = function(source) { + if (source === null) { + return new Buffer(0); + } else if (typeof source === 'string') { + return new Buffer(source); + } else if (util.isStream(source) && !source._readableState) { + var normalized = new PassThrough(); + source.pipe(normalized); + + return normalized; + } + + return source; +}; + +util.sanitizePath = function() { + var filepath = path.join.apply(path, arguments); + return filepath.replace(/\\/g, '/').replace(/:/g, '').replace(/^(\.\.\/|\.\/|\/)+/, ''); +}; + +util.trailingSlashIt = function(str) { + return str.slice(-1) !== '/' ? str + '/' : str; +}; + +util.unixifyPath = function() { + var filepath = path.join.apply(path, arguments); + return filepath.replace(/\\/g, '/'); +}; + +util.walkdir = function(dirpath, base, callback) { + var results = []; + + if (typeof base === 'function') { + callback = base; + base = dirpath; + } + + fs.readdir(dirpath, function(err, list) { + var i = 0; + var file; + var filepath; + + if (err) { + return callback(err); + } + + (function next() { + file = list[i++]; + + if (!file) { + return callback(null, results); + } + + filepath = path.join(dirpath, file); + + fs.stat(filepath, function(err, stats) { + results.push({ + path: filepath, + relative: path.relative(base, filepath).replace(/\\/g, '/'), + stats: stats + }); + + if (stats && stats.isDirectory()) { + util.walkdir(filepath, base, function(err, res) { + results = results.concat(res); + next(); + }); + } else { + next(); + } + }); + })(); + }); +}; \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/archiver/package.json b/packages/NoGit.0.1.0/node_modules/archiver/package.json new file mode 100644 index 0000000..2ced42e --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/archiver/package.json @@ -0,0 +1,105 @@ +{ + "_args": [ + [ + "archiver@^0.14.4", + "C:\\temp\\forpg\\node_modules\\nogit" + ] + ], + "_from": "archiver@>=0.14.4 <0.15.0", + "_id": "archiver@0.14.4", + "_inCache": true, + "_location": "/archiver", + "_nodeVersion": "0.12.2", + "_npmUser": { + "email": "chris@christalkington.com", + "name": "ctalkington" + }, + "_npmVersion": "2.8.3", + "_phantomChildren": {}, + "_requested": { + "name": "archiver", + "raw": "archiver@^0.14.4", + "rawSpec": "^0.14.4", + "scope": null, + "spec": ">=0.14.4 <0.15.0", + "type": "range" + }, + "_requiredBy": [ + "/nogit" + ], + "_resolved": "https://registry.npmjs.org/archiver/-/archiver-0.14.4.tgz", + "_shasum": "5b9ddb9f5ee1ceef21cb8f3b020e6240ecb4315c", + "_shrinkwrap": null, + "_spec": "archiver@^0.14.4", + "_where": "C:\\temp\\forpg\\node_modules\\nogit", + "author": { + "name": "Chris Talkington", + "url": "http://christalkington.com/" + }, + "bugs": { + "url": "https://github.com/archiverjs/node-archiver/issues" + }, + "dependencies": { + "async": "~0.9.0", + "buffer-crc32": "~0.2.1", + "glob": "~4.3.0", + "lazystream": "~0.1.0", + "lodash": "~3.2.0", + "readable-stream": "~1.0.26", + "tar-stream": "~1.1.0", + "zip-stream": "~0.5.0" + }, + "description": "a streaming interface for archive generation", + "devDependencies": { + "chai": "~2.0.0", + "mkdirp": "~0.5.0", + "mocha": "~2.1.0", + "rimraf": "~2.2.8", + "stream-bench": "~0.1.2", + "tar": "~1.0.3", + "yauzl": "~2.2.1" + }, + "directories": {}, + "dist": { + "shasum": "5b9ddb9f5ee1ceef21cb8f3b020e6240ecb4315c", + "tarball": "http://registry.npmjs.org/archiver/-/archiver-0.14.4.tgz" + }, + "engines": { + "node": ">= 0.10.0" + }, + "files": [ + "lib" + ], + "gitHead": "1e55f081f0ad96622990da016e7f1ea091143c16", + "homepage": "https://github.com/archiverjs/node-archiver", + "installable": true, + "keywords": [ + "archive", + "archiver", + "stream", + "tar", + "zip" + ], + "license": "MIT", + "main": "lib/archiver.js", + "maintainers": [ + { + "name": "ctalkington", + "email": "chris@christalkington.com" + } + ], + "name": "archiver", + "optionalDependencies": {}, + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/archiverjs/node-archiver.git" + }, + "scripts": { + "bench": "node benchmark/simple/pack-zip.js", + "test": "mocha --reporter dot" + }, + "version": "0.14.4" +} diff --git a/packages/NoGit.0.1.0/node_modules/array-union/index.js b/packages/NoGit.0.1.0/node_modules/array-union/index.js new file mode 100644 index 0000000..e33f38a --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/array-union/index.js @@ -0,0 +1,6 @@ +'use strict'; +var arrayUniq = require('array-uniq'); + +module.exports = function () { + return arrayUniq([].concat.apply([], arguments)); +}; diff --git a/packages/NoGit.0.1.0/node_modules/array-union/package.json b/packages/NoGit.0.1.0/node_modules/array-union/package.json new file mode 100644 index 0000000..dce3e41 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/array-union/package.json @@ -0,0 +1,93 @@ +{ + "_args": [ + [ + "array-union@^1.0.1", + "C:\\temp\\forpg\\node_modules\\globby" + ] + ], + "_from": "array-union@>=1.0.1 <2.0.0", + "_id": "array-union@1.0.1", + "_inCache": true, + "_location": "/array-union", + "_nodeVersion": "0.10.32", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" + }, + "_npmVersion": "2.1.5", + "_phantomChildren": {}, + "_requested": { + "name": "array-union", + "raw": "array-union@^1.0.1", + "rawSpec": "^1.0.1", + "scope": null, + "spec": ">=1.0.1 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/globby" + ], + "_resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.1.tgz", + "_shasum": "4d410fc8395cb247637124bade9e3f547d5d55f2", + "_shrinkwrap": null, + "_spec": "array-union@^1.0.1", + "_where": "C:\\temp\\forpg\\node_modules\\globby", + "author": { + "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", + "url": "http://sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/array-union/issues" + }, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "description": "Create an array of unique values, in order, from the input arrays", + "devDependencies": { + "mocha": "*" + }, + "directories": {}, + "dist": { + "shasum": "4d410fc8395cb247637124bade9e3f547d5d55f2", + "tarball": "http://registry.npmjs.org/array-union/-/array-union-1.0.1.tgz" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "gitHead": "d0e72cc6fbff57273032e45050c51ff44c8e137c", + "homepage": "https://github.com/sindresorhus/array-union", + "installable": true, + "keywords": [ + "arr", + "array", + "combine", + "duplicate", + "merge", + "remove", + "set", + "union", + "uniq", + "unique" + ], + "license": "MIT", + "maintainers": [ + { + "name": "sindresorhus", + "email": "sindresorhus@gmail.com" + } + ], + "name": "array-union", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/array-union" + }, + "scripts": { + "test": "mocha" + }, + "version": "1.0.1" +} diff --git a/packages/NoGit.0.1.0/node_modules/array-union/readme.md b/packages/NoGit.0.1.0/node_modules/array-union/readme.md new file mode 100644 index 0000000..dbae361 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/array-union/readme.md @@ -0,0 +1,28 @@ +# array-union [![Build Status](https://travis-ci.org/sindresorhus/array-union.svg?branch=master)](https://travis-ci.org/sindresorhus/array-union) + +> Create an array of unique values, in order, from the input arrays + + +## Install + +```sh +$ npm install --save array-union +``` + + +## Usage + +```js +var arrayUnion = require('array-union'); + +arrayUnion([1, 1, 2, 3], [2, 3]); +//=> [1, 2, 3] + +arrayUnion(['foo', 'foo', 'bar'], ['foo']); +//=> ['foo', 'bar'] +``` + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/packages/NoGit.0.1.0/node_modules/array-uniq/index.js b/packages/NoGit.0.1.0/node_modules/array-uniq/index.js new file mode 100644 index 0000000..40f81b8 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/array-uniq/index.js @@ -0,0 +1,60 @@ +'use strict'; + +// there's 3 implementations written in increasing order of efficiency + +// 1 - no Set type is defined +function uniqNoSet(arr) { + var ret = []; + + for (var i = 0; i < arr.length; i++) { + if (ret.indexOf(arr[i]) === -1) { + ret.push(arr[i]); + } + } + + return ret; +} + +// 2 - a simple Set type is defined +function uniqSet(arr) { + var seen = new Set(); + return arr.filter(function (el) { + if (!seen.has(el)) { + seen.add(el); + return true; + } + }); +} + +// 3 - a standard Set type is defined and it has a forEach method +function uniqSetWithForEach(arr) { + var ret = []; + + (new Set(arr)).forEach(function (el) { + ret.push(el); + }); + + return ret; +} + +// V8 currently has a broken implementation +// https://github.com/joyent/node/issues/8449 +function doesForEachActuallyWork() { + var ret = false; + + (new Set([true])).forEach(function (el) { + ret = el; + }); + + return ret === true; +} + +if ('Set' in global) { + if (typeof Set.prototype.forEach === 'function' && doesForEachActuallyWork()) { + module.exports = uniqSetWithForEach; + } else { + module.exports = uniqSet; + } +} else { + module.exports = uniqNoSet; +} diff --git a/packages/NoGit.0.1.0/node_modules/array-uniq/package.json b/packages/NoGit.0.1.0/node_modules/array-uniq/package.json new file mode 100644 index 0000000..28d8bd0 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/array-uniq/package.json @@ -0,0 +1,91 @@ +{ + "_args": [ + [ + "array-uniq@^1.0.1", + "C:\\temp\\forpg\\node_modules\\array-union" + ] + ], + "_from": "array-uniq@>=1.0.1 <2.0.0", + "_id": "array-uniq@1.0.2", + "_inCache": true, + "_location": "/array-uniq", + "_nodeVersion": "0.10.32", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" + }, + "_npmVersion": "2.1.5", + "_phantomChildren": {}, + "_requested": { + "name": "array-uniq", + "raw": "array-uniq@^1.0.1", + "rawSpec": "^1.0.1", + "scope": null, + "spec": ">=1.0.1 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/array-union" + ], + "_resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz", + "_shasum": "5fcc373920775723cfd64d65c64bef53bf9eba6d", + "_shrinkwrap": null, + "_spec": "array-uniq@^1.0.1", + "_where": "C:\\temp\\forpg\\node_modules\\array-union", + "author": { + "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", + "url": "http://sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/array-uniq/issues" + }, + "dependencies": {}, + "description": "Create an array without duplicates", + "devDependencies": { + "es6-set": "^0.1.0", + "mocha": "*", + "require-uncached": "^1.0.2" + }, + "directories": {}, + "dist": { + "shasum": "5fcc373920775723cfd64d65c64bef53bf9eba6d", + "tarball": "http://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "gitHead": "d5e311f37692dfd25ec216490df10632ce5f69f3", + "homepage": "https://github.com/sindresorhus/array-uniq", + "installable": true, + "keywords": [ + "arr", + "array", + "duplicate", + "es6", + "remove", + "set", + "uniq", + "unique" + ], + "license": "MIT", + "maintainers": [ + { + "name": "sindresorhus", + "email": "sindresorhus@gmail.com" + } + ], + "name": "array-uniq", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/array-uniq" + }, + "scripts": { + "test": "mocha" + }, + "version": "1.0.2" +} diff --git a/packages/NoGit.0.1.0/node_modules/array-uniq/readme.md b/packages/NoGit.0.1.0/node_modules/array-uniq/readme.md new file mode 100644 index 0000000..5183d07 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/array-uniq/readme.md @@ -0,0 +1,30 @@ +# array-uniq [![Build Status](https://travis-ci.org/sindresorhus/array-uniq.svg?branch=master)](https://travis-ci.org/sindresorhus/array-uniq) + +> Create an array without duplicates + +It's already pretty fast, but will be much faster when [Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) becomes available in V8 (especially with large arrays). + + +## Install + +```sh +$ npm install --save array-uniq +``` + + +## Usage + +```js +var arrayUniq = require('array-uniq'); + +arrayUniq([1, 1, 2, 3, 3]); +//=> [1, 2, 3] + +arrayUniq(['foo', 'foo', 'bar', 'foo']); +//=> ['foo', 'bar'] +``` + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/packages/NoGit.0.1.0/node_modules/async/.travis.yml b/packages/NoGit.0.1.0/node_modules/async/.travis.yml new file mode 100644 index 0000000..6064ca0 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/async/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: + - "0.10" + - "0.12" + - "iojs" diff --git a/packages/NoGit.0.1.0/node_modules/async/LICENSE b/packages/NoGit.0.1.0/node_modules/async/LICENSE new file mode 100644 index 0000000..8f29698 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/async/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2010-2014 Caolan McMahon + +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/NoGit.0.1.0/node_modules/async/README.md b/packages/NoGit.0.1.0/node_modules/async/README.md new file mode 100644 index 0000000..6cfb922 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/async/README.md @@ -0,0 +1,1647 @@ +# Async.js + +[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async) + + +Async is a utility module which provides straight-forward, powerful functions +for working with asynchronous JavaScript. Although originally designed for +use with [Node.js](http://nodejs.org) and installable via `npm install async`, +it can also be used directly in the browser. + +Async is also installable via: + +- [bower](http://bower.io/): `bower install async` +- [component](https://github.com/component/component): `component install + caolan/async` +- [jam](http://jamjs.org/): `jam install async` +- [spm](http://spmjs.io/): `spm install async` + +Async provides around 20 functions that include the usual 'functional' +suspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns +for asynchronous control flow (`parallel`, `series`, `waterfall`…). All these +functions assume you follow the Node.js convention of providing a single +callback as the last argument of your `async` function. + + +## Quick Examples + +```javascript +async.map(['file1','file2','file3'], fs.stat, function(err, results){ + // results is now an array of stats for each file +}); + +async.filter(['file1','file2','file3'], fs.exists, function(results){ + // results now equals an array of the existing files +}); + +async.parallel([ + function(){ ... }, + function(){ ... } +], callback); + +async.series([ + function(){ ... }, + function(){ ... } +]); +``` + +There are many more functions available so take a look at the docs below for a +full list. This module aims to be comprehensive, so if you feel anything is +missing please create a GitHub issue for it. + +## Common Pitfalls + +### Binding a context to an iterator + +This section is really about `bind`, not about `async`. If you are wondering how to +make `async` execute your iterators in a given context, or are confused as to why +a method of another library isn't working as an iterator, study this example: + +```js +// Here is a simple object with an (unnecessarily roundabout) squaring method +var AsyncSquaringLibrary = { + squareExponent: 2, + square: function(number, callback){ + var result = Math.pow(number, this.squareExponent); + setTimeout(function(){ + callback(null, result); + }, 200); + } +}; + +async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){ + // result is [NaN, NaN, NaN] + // This fails because the `this.squareExponent` expression in the square + // function is not evaluated in the context of AsyncSquaringLibrary, and is + // therefore undefined. +}); + +async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){ + // result is [1, 4, 9] + // With the help of bind we can attach a context to the iterator before + // passing it to async. Now the square function will be executed in its + // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent` + // will be as expected. +}); +``` + +## Download + +The source is available for download from +[GitHub](http://github.com/caolan/async). +Alternatively, you can install using Node Package Manager (`npm`): + + npm install async + +__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed + +## In the Browser + +So far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. + +Usage: + +```html + + +``` + +## Documentation + +### Collections + +* [`each`](#each) +* [`eachSeries`](#eachSeries) +* [`eachLimit`](#eachLimit) +* [`map`](#map) +* [`mapSeries`](#mapSeries) +* [`mapLimit`](#mapLimit) +* [`filter`](#filter) +* [`filterSeries`](#filterSeries) +* [`reject`](#reject) +* [`rejectSeries`](#rejectSeries) +* [`reduce`](#reduce) +* [`reduceRight`](#reduceRight) +* [`detect`](#detect) +* [`detectSeries`](#detectSeries) +* [`sortBy`](#sortBy) +* [`some`](#some) +* [`every`](#every) +* [`concat`](#concat) +* [`concatSeries`](#concatSeries) + +### Control Flow + +* [`series`](#seriestasks-callback) +* [`parallel`](#parallel) +* [`parallelLimit`](#parallellimittasks-limit-callback) +* [`whilst`](#whilst) +* [`doWhilst`](#doWhilst) +* [`until`](#until) +* [`doUntil`](#doUntil) +* [`forever`](#forever) +* [`waterfall`](#waterfall) +* [`compose`](#compose) +* [`seq`](#seq) +* [`applyEach`](#applyEach) +* [`applyEachSeries`](#applyEachSeries) +* [`queue`](#queue) +* [`priorityQueue`](#priorityQueue) +* [`cargo`](#cargo) +* [`auto`](#auto) +* [`retry`](#retry) +* [`iterator`](#iterator) +* [`apply`](#apply) +* [`nextTick`](#nextTick) +* [`times`](#times) +* [`timesSeries`](#timesSeries) + +### Utils + +* [`memoize`](#memoize) +* [`unmemoize`](#unmemoize) +* [`log`](#log) +* [`dir`](#dir) +* [`noConflict`](#noConflict) + + +## Collections + + + +### each(arr, iterator, callback) + +Applies the function `iterator` to each item in `arr`, in parallel. +The `iterator` is called with an item from the list, and a callback for when it +has finished. If the `iterator` passes an error to its `callback`, the main +`callback` (for the `each` function) is immediately called with the error. + +Note, that since this function applies `iterator` to each item in parallel, +there is no guarantee that the iterator functions will complete in order. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err)` which must be called once it has + completed. If no error has occurred, the `callback` should be run without + arguments or with an explicit `null` argument. +* `callback(err)` - A callback which is called when all `iterator` functions + have finished, or an error occurs. + +__Examples__ + + +```js +// assuming openFiles is an array of file names and saveFile is a function +// to save the modified contents of that file: + +async.each(openFiles, saveFile, function(err){ + // if any of the saves produced an error, err would equal that error +}); +``` + +```js +// assuming openFiles is an array of file names + +async.each(openFiles, function(file, callback) { + + // Perform operation on file here. + console.log('Processing file ' + file); + + if( file.length > 32 ) { + console.log('This file name is too long'); + callback('File name too long'); + } else { + // Do work to process file here + console.log('File processed'); + callback(); + } +}, function(err){ + // if any of the file processing produced an error, err would equal that error + if( err ) { + // One of the iterations produced an error. + // All processing will now stop. + console.log('A file failed to process'); + } else { + console.log('All files have been processed successfully'); + } +}); +``` + +--------------------------------------- + + + +### eachSeries(arr, iterator, callback) + +The same as [`each`](#each), only `iterator` is applied to each item in `arr` in +series. The next `iterator` is only called once the current one has completed. +This means the `iterator` functions will complete in order. + + +--------------------------------------- + + + +### eachLimit(arr, limit, iterator, callback) + +The same as [`each`](#each), only no more than `limit` `iterator`s will be simultaneously +running at any time. + +Note that the items in `arr` are not processed in batches, so there is no guarantee that +the first `limit` `iterator` functions will complete before any others are started. + +__Arguments__ + +* `arr` - An array to iterate over. +* `limit` - The maximum number of `iterator`s to run at any time. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err)` which must be called once it has + completed. If no error has occurred, the callback should be run without + arguments or with an explicit `null` argument. +* `callback(err)` - A callback which is called when all `iterator` functions + have finished, or an error occurs. + +__Example__ + +```js +// Assume documents is an array of JSON objects and requestApi is a +// function that interacts with a rate-limited REST api. + +async.eachLimit(documents, 20, requestApi, function(err){ + // if any of the saves produced an error, err would equal that error +}); +``` + +--------------------------------------- + + +### map(arr, iterator, callback) + +Produces a new array of values by mapping each value in `arr` through +the `iterator` function. The `iterator` is called with an item from `arr` and a +callback for when it has finished processing. Each of these callback takes 2 arguments: +an `error`, and the transformed item from `arr`. If `iterator` passes an error to his +callback, the main `callback` (for the `map` function) is immediately called with the error. + +Note, that since this function applies the `iterator` to each item in parallel, +there is no guarantee that the `iterator` functions will complete in order. +However, the results array will be in the same order as the original `arr`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, transformed)` which must be called once + it has completed with an error (which can be `null`) and a transformed item. +* `callback(err, results)` - A callback which is called when all `iterator` + functions have finished, or an error occurs. Results is an array of the + transformed items from the `arr`. + +__Example__ + +```js +async.map(['file1','file2','file3'], fs.stat, function(err, results){ + // results is now an array of stats for each file +}); +``` + +--------------------------------------- + + +### mapSeries(arr, iterator, callback) + +The same as [`map`](#map), only the `iterator` is applied to each item in `arr` in +series. The next `iterator` is only called once the current one has completed. +The results array will be in the same order as the original. + + +--------------------------------------- + + +### mapLimit(arr, limit, iterator, callback) + +The same as [`map`](#map), only no more than `limit` `iterator`s will be simultaneously +running at any time. + +Note that the items are not processed in batches, so there is no guarantee that +the first `limit` `iterator` functions will complete before any others are started. + +__Arguments__ + +* `arr` - An array to iterate over. +* `limit` - The maximum number of `iterator`s to run at any time. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, transformed)` which must be called once + it has completed with an error (which can be `null`) and a transformed item. +* `callback(err, results)` - A callback which is called when all `iterator` + calls have finished, or an error occurs. The result is an array of the + transformed items from the original `arr`. + +__Example__ + +```js +async.mapLimit(['file1','file2','file3'], 1, fs.stat, function(err, results){ + // results is now an array of stats for each file +}); +``` + +--------------------------------------- + + + +### filter(arr, iterator, callback) + +__Alias:__ `select` + +Returns a new array of all the values in `arr` which pass an async truth test. +_The callback for each `iterator` call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. This operation is +performed in parallel, but the results array will be in the same order as the +original. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in `arr`. + The `iterator` is passed a `callback(truthValue)`, which must be called with a + boolean argument once it has completed. +* `callback(results)` - A callback which is called after all the `iterator` + functions have finished. + +__Example__ + +```js +async.filter(['file1','file2','file3'], fs.exists, function(results){ + // results now equals an array of the existing files +}); +``` + +--------------------------------------- + + + +### filterSeries(arr, iterator, callback) + +__Alias:__ `selectSeries` + +The same as [`filter`](#filter) only the `iterator` is applied to each item in `arr` in +series. The next `iterator` is only called once the current one has completed. +The results array will be in the same order as the original. + +--------------------------------------- + + +### reject(arr, iterator, callback) + +The opposite of [`filter`](#filter). Removes values that pass an `async` truth test. + +--------------------------------------- + + +### rejectSeries(arr, iterator, callback) + +The same as [`reject`](#reject), only the `iterator` is applied to each item in `arr` +in series. + + +--------------------------------------- + + +### reduce(arr, memo, iterator, callback) + +__Aliases:__ `inject`, `foldl` + +Reduces `arr` into a single value using an async `iterator` to return +each successive step. `memo` is the initial state of the reduction. +This function only operates in series. + +For performance reasons, it may make sense to split a call to this function into +a parallel map, and then use the normal `Array.prototype.reduce` on the results. +This function is for situations where each step in the reduction needs to be async; +if you can get the data before reducing it, then it's probably a good idea to do so. + +__Arguments__ + +* `arr` - An array to iterate over. +* `memo` - The initial state of the reduction. +* `iterator(memo, item, callback)` - A function applied to each item in the + array to produce the next step in the reduction. The `iterator` is passed a + `callback(err, reduction)` which accepts an optional error as its first + argument, and the state of the reduction as the second. If an error is + passed to the callback, the reduction is stopped and the main `callback` is + immediately called with the error. +* `callback(err, result)` - A callback which is called after all the `iterator` + functions have finished. Result is the reduced value. + +__Example__ + +```js +async.reduce([1,2,3], 0, function(memo, item, callback){ + // pointless async: + process.nextTick(function(){ + callback(null, memo + item) + }); +}, function(err, result){ + // result is now equal to the last value of memo, which is 6 +}); +``` + +--------------------------------------- + + +### reduceRight(arr, memo, iterator, callback) + +__Alias:__ `foldr` + +Same as [`reduce`](#reduce), only operates on `arr` in reverse order. + + +--------------------------------------- + + +### detect(arr, iterator, callback) + +Returns the first value in `arr` that passes an async truth test. The +`iterator` is applied in parallel, meaning the first iterator to return `true` will +fire the detect `callback` with that result. That means the result might not be +the first item in the original `arr` (in terms of order) that passes the test. + +If order within the original `arr` is important, then look at [`detectSeries`](#detectSeries). + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in `arr`. + The iterator is passed a `callback(truthValue)` which must be called with a + boolean argument once it has completed. +* `callback(result)` - A callback which is called as soon as any iterator returns + `true`, or after all the `iterator` functions have finished. Result will be + the first item in the array that passes the truth test (iterator) or the + value `undefined` if none passed. + +__Example__ + +```js +async.detect(['file1','file2','file3'], fs.exists, function(result){ + // result now equals the first file in the list that exists +}); +``` + +--------------------------------------- + + +### detectSeries(arr, iterator, callback) + +The same as [`detect`](#detect), only the `iterator` is applied to each item in `arr` +in series. This means the result is always the first in the original `arr` (in +terms of array order) that passes the truth test. + + +--------------------------------------- + + +### sortBy(arr, iterator, callback) + +Sorts a list by the results of running each `arr` value through an async `iterator`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, sortValue)` which must be called once it + has completed with an error (which can be `null`) and a value to use as the sort + criteria. +* `callback(err, results)` - A callback which is called after all the `iterator` + functions have finished, or an error occurs. Results is the items from + the original `arr` sorted by the values returned by the `iterator` calls. + +__Example__ + +```js +async.sortBy(['file1','file2','file3'], function(file, callback){ + fs.stat(file, function(err, stats){ + callback(err, stats.mtime); + }); +}, function(err, results){ + // results is now the original array of files sorted by + // modified date +}); +``` + +__Sort Order__ + +By modifying the callback parameter the sorting order can be influenced: + +```js +//ascending order +async.sortBy([1,9,3,5], function(x, callback){ + callback(null, x); +}, function(err,result){ + //result callback +} ); + +//descending order +async.sortBy([1,9,3,5], function(x, callback){ + callback(null, x*-1); //<- x*-1 instead of x, turns the order around +}, function(err,result){ + //result callback +} ); +``` + +--------------------------------------- + + +### some(arr, iterator, callback) + +__Alias:__ `any` + +Returns `true` if at least one element in the `arr` satisfies an async test. +_The callback for each iterator call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. Once any iterator +call returns `true`, the main `callback` is immediately called. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in the array + in parallel. The iterator is passed a callback(truthValue) which must be + called with a boolean argument once it has completed. +* `callback(result)` - A callback which is called as soon as any iterator returns + `true`, or after all the iterator functions have finished. Result will be + either `true` or `false` depending on the values of the async tests. + +__Example__ + +```js +async.some(['file1','file2','file3'], fs.exists, function(result){ + // if result is true then at least one of the files exists +}); +``` + +--------------------------------------- + + +### every(arr, iterator, callback) + +__Alias:__ `all` + +Returns `true` if every element in `arr` satisfies an async test. +_The callback for each `iterator` call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in the array + in parallel. The iterator is passed a callback(truthValue) which must be + called with a boolean argument once it has completed. +* `callback(result)` - A callback which is called after all the `iterator` + functions have finished. Result will be either `true` or `false` depending on + the values of the async tests. + +__Example__ + +```js +async.every(['file1','file2','file3'], fs.exists, function(result){ + // if result is true then every file exists +}); +``` + +--------------------------------------- + + +### concat(arr, iterator, callback) + +Applies `iterator` to each item in `arr`, concatenating the results. Returns the +concatenated list. The `iterator`s are called in parallel, and the results are +concatenated as they return. There is no guarantee that the results array will +be returned in the original order of `arr` passed to the `iterator` function. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, results)` which must be called once it + has completed with an error (which can be `null`) and an array of results. +* `callback(err, results)` - A callback which is called after all the `iterator` + functions have finished, or an error occurs. Results is an array containing + the concatenated results of the `iterator` function. + +__Example__ + +```js +async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ + // files is now a list of filenames that exist in the 3 directories +}); +``` + +--------------------------------------- + + +### concatSeries(arr, iterator, callback) + +Same as [`concat`](#concat), but executes in series instead of parallel. + + +## Control Flow + + +### series(tasks, [callback]) + +Run the functions in the `tasks` array in series, each one running once the previous +function has completed. If any functions in the series pass an error to its +callback, no more functions are run, and `callback` is immediately called with the value of the error. +Otherwise, `callback` receives an array of results when `tasks` have completed. + +It is also possible to use an object instead of an array. Each property will be +run as a function, and the results will be passed to the final `callback` as an object +instead of an array. This can be a more readable way of handling results from +[`series`](#series). + +**Note** that while many implementations preserve the order of object properties, the +[ECMAScript Language Specifcation](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) +explicitly states that + +> The mechanics and order of enumerating the properties is not specified. + +So if you rely on the order in which your series of functions are executed, and want +this to work on all platforms, consider using an array. + +__Arguments__ + +* `tasks` - An array or object containing functions to run, each function is passed + a `callback(err, result)` it must call on completion with an error `err` (which can + be `null`) and an optional `result` value. +* `callback(err, results)` - An optional callback to run once all the functions + have completed. This function gets a results array (or object) containing all + the result arguments passed to the `task` callbacks. + +__Example__ + +```js +async.series([ + function(callback){ + // do some stuff ... + callback(null, 'one'); + }, + function(callback){ + // do some more stuff ... + callback(null, 'two'); + } +], +// optional callback +function(err, results){ + // results is now equal to ['one', 'two'] +}); + + +// an example using an object instead of an array +async.series({ + one: function(callback){ + setTimeout(function(){ + callback(null, 1); + }, 200); + }, + two: function(callback){ + setTimeout(function(){ + callback(null, 2); + }, 100); + } +}, +function(err, results) { + // results is now equal to: {one: 1, two: 2} +}); +``` + +--------------------------------------- + + +### parallel(tasks, [callback]) + +Run the `tasks` array of functions in parallel, without waiting until the previous +function has completed. If any of the functions pass an error to its +callback, the main `callback` is immediately called with the value of the error. +Once the `tasks` have completed, the results are passed to the final `callback` as an +array. + +It is also possible to use an object instead of an array. Each property will be +run as a function and the results will be passed to the final `callback` as an object +instead of an array. This can be a more readable way of handling results from +[`parallel`](#parallel). + + +__Arguments__ + +* `tasks` - An array or object containing functions to run. Each function is passed + a `callback(err, result)` which it must call on completion with an error `err` + (which can be `null`) and an optional `result` value. +* `callback(err, results)` - An optional callback to run once all the functions + have completed. This function gets a results array (or object) containing all + the result arguments passed to the task callbacks. + +__Example__ + +```js +async.parallel([ + function(callback){ + setTimeout(function(){ + callback(null, 'one'); + }, 200); + }, + function(callback){ + setTimeout(function(){ + callback(null, 'two'); + }, 100); + } +], +// optional callback +function(err, results){ + // the results array will equal ['one','two'] even though + // the second function had a shorter timeout. +}); + + +// an example using an object instead of an array +async.parallel({ + one: function(callback){ + setTimeout(function(){ + callback(null, 1); + }, 200); + }, + two: function(callback){ + setTimeout(function(){ + callback(null, 2); + }, 100); + } +}, +function(err, results) { + // results is now equals to: {one: 1, two: 2} +}); +``` + +--------------------------------------- + + +### parallelLimit(tasks, limit, [callback]) + +The same as [`parallel`](#parallel), only `tasks` are executed in parallel +with a maximum of `limit` tasks executing at any time. + +Note that the `tasks` are not executed in batches, so there is no guarantee that +the first `limit` tasks will complete before any others are started. + +__Arguments__ + +* `tasks` - An array or object containing functions to run, each function is passed + a `callback(err, result)` it must call on completion with an error `err` (which can + be `null`) and an optional `result` value. +* `limit` - The maximum number of `tasks` to run at any time. +* `callback(err, results)` - An optional callback to run once all the functions + have completed. This function gets a results array (or object) containing all + the result arguments passed to the `task` callbacks. + +--------------------------------------- + + +### whilst(test, fn, callback) + +Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped, +or an error occurs. + +__Arguments__ + +* `test()` - synchronous truth test to perform before each execution of `fn`. +* `fn(callback)` - A function which is called each time `test` passes. The function is + passed a `callback(err)`, which must be called once it has completed with an + optional `err` argument. +* `callback(err)` - A callback which is called after the test fails and repeated + execution of `fn` has stopped. + +__Example__ + +```js +var count = 0; + +async.whilst( + function () { return count < 5; }, + function (callback) { + count++; + setTimeout(callback, 1000); + }, + function (err) { + // 5 seconds have passed + } +); +``` + +--------------------------------------- + + +### doWhilst(fn, test, callback) + +The post-check version of [`whilst`](#whilst). To reflect the difference in +the order of operations, the arguments `test` and `fn` are switched. + +`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. + +--------------------------------------- + + +### until(test, fn, callback) + +Repeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped, +or an error occurs. + +The inverse of [`whilst`](#whilst). + +--------------------------------------- + + +### doUntil(fn, test, callback) + +Like [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`. + +--------------------------------------- + + +### forever(fn, errback) + +Calls the asynchronous function `fn` with a callback parameter that allows it to +call itself again, in series, indefinitely. + +If an error is passed to the callback then `errback` is called with the +error, and execution stops, otherwise it will never be called. + +```js +async.forever( + function(next) { + // next is suitable for passing to things that need a callback(err [, whatever]); + // it will result in this function being called again. + }, + function(err) { + // if next is called with a value in its first parameter, it will appear + // in here as 'err', and execution will stop. + } +); +``` + +--------------------------------------- + + +### waterfall(tasks, [callback]) + +Runs the `tasks` array of functions in series, each passing their results to the next in +the array. However, if any of the `tasks` pass an error to their own callback, the +next function is not executed, and the main `callback` is immediately called with +the error. + +__Arguments__ + +* `tasks` - An array of functions to run, each function is passed a + `callback(err, result1, result2, ...)` it must call on completion. The first + argument is an error (which can be `null`) and any further arguments will be + passed as arguments in order to the next task. +* `callback(err, [results])` - An optional callback to run once all the functions + have completed. This will be passed the results of the last task's callback. + + + +__Example__ + +```js +async.waterfall([ + function(callback) { + callback(null, 'one', 'two'); + }, + function(arg1, arg2, callback) { + // arg1 now equals 'one' and arg2 now equals 'two' + callback(null, 'three'); + }, + function(arg1, callback) { + // arg1 now equals 'three' + callback(null, 'done'); + } +], function (err, result) { + // result now equals 'done' +}); +``` + +--------------------------------------- + +### compose(fn1, fn2...) + +Creates a function which is a composition of the passed asynchronous +functions. Each function consumes the return value of the function that +follows. Composing functions `f()`, `g()`, and `h()` would produce the result of +`f(g(h()))`, only this version uses callbacks to obtain the return values. + +Each function is executed with the `this` binding of the composed function. + +__Arguments__ + +* `functions...` - the asynchronous functions to compose + + +__Example__ + +```js +function add1(n, callback) { + setTimeout(function () { + callback(null, n + 1); + }, 10); +} + +function mul3(n, callback) { + setTimeout(function () { + callback(null, n * 3); + }, 10); +} + +var add1mul3 = async.compose(mul3, add1); + +add1mul3(4, function (err, result) { + // result now equals 15 +}); +``` + +--------------------------------------- + +### seq(fn1, fn2...) + +Version of the compose function that is more natural to read. +Each function consumes the return value of the previous function. +It is the equivalent of [`compose`](#compose) with the arguments reversed. + +Each function is executed with the `this` binding of the composed function. + +__Arguments__ + +* functions... - the asynchronous functions to compose + + +__Example__ + +```js +// Requires lodash (or underscore), express3 and dresende's orm2. +// Part of an app, that fetches cats of the logged user. +// This example uses `seq` function to avoid overnesting and error +// handling clutter. +app.get('/cats', function(request, response) { + var User = request.models.User; + async.seq( + _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) + function(user, fn) { + user.getCats(fn); // 'getCats' has signature (callback(err, data)) + } + )(req.session.user_id, function (err, cats) { + if (err) { + console.error(err); + response.json({ status: 'error', message: err.message }); + } else { + response.json({ status: 'ok', message: 'Cats found', data: cats }); + } + }); +}); +``` + +--------------------------------------- + +### applyEach(fns, args..., callback) + +Applies the provided arguments to each function in the array, calling +`callback` after all functions have completed. If you only provide the first +argument, then it will return a function which lets you pass in the +arguments as if it were a single function call. + +__Arguments__ + +* `fns` - the asynchronous functions to all call with the same arguments +* `args...` - any number of separate arguments to pass to the function +* `callback` - the final argument should be the callback, called when all + functions have completed processing + + +__Example__ + +```js +async.applyEach([enableSearch, updateSchema], 'bucket', callback); + +// partial application example: +async.each( + buckets, + async.applyEach([enableSearch, updateSchema]), + callback +); +``` + +--------------------------------------- + + +### applyEachSeries(arr, iterator, callback) + +The same as [`applyEach`](#applyEach) only the functions are applied in series. + +--------------------------------------- + + +### queue(worker, concurrency) + +Creates a `queue` object with the specified `concurrency`. Tasks added to the +`queue` are processed in parallel (up to the `concurrency` limit). If all +`worker`s are in progress, the task is queued until one becomes available. +Once a `worker` completes a `task`, that `task`'s callback is called. + +__Arguments__ + +* `worker(task, callback)` - An asynchronous function for processing a queued + task, which must call its `callback(err)` argument when finished, with an + optional `error` as an argument. +* `concurrency` - An `integer` for determining how many `worker` functions should be + run in parallel. + +__Queue objects__ + +The `queue` object returned by this function has the following properties and +methods: + +* `length()` - a function returning the number of items waiting to be processed. +* `started` - a function returning whether or not any items have been pushed and processed by the queue +* `running()` - a function returning the number of items currently being processed. +* `idle()` - a function returning false if there are items waiting or being processed, or true if not. +* `concurrency` - an integer for determining how many `worker` functions should be + run in parallel. This property can be changed after a `queue` is created to + alter the concurrency on-the-fly. +* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once + the `worker` has finished processing the task. Instead of a single task, a `tasks` array + can be submitted. The respective callback is used for every task in the list. +* `unshift(task, [callback])` - add a new task to the front of the `queue`. +* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit, + and further tasks will be queued. +* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`. +* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`. +* `paused` - a boolean for determining whether the queue is in a paused state +* `pause()` - a function that pauses the processing of tasks until `resume()` is called. +* `resume()` - a function that resumes the processing of queued tasks when the queue is paused. +* `kill()` - a function that removes the `drain` callback and empties remaining tasks from the queue forcing it to go idle. + +__Example__ + +```js +// create a queue object with concurrency 2 + +var q = async.queue(function (task, callback) { + console.log('hello ' + task.name); + callback(); +}, 2); + + +// assign a callback +q.drain = function() { + console.log('all items have been processed'); +} + +// add some items to the queue + +q.push({name: 'foo'}, function (err) { + console.log('finished processing foo'); +}); +q.push({name: 'bar'}, function (err) { + console.log('finished processing bar'); +}); + +// add some items to the queue (batch-wise) + +q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { + console.log('finished processing item'); +}); + +// add some items to the front of the queue + +q.unshift({name: 'bar'}, function (err) { + console.log('finished processing bar'); +}); +``` + + +--------------------------------------- + + +### priorityQueue(worker, concurrency) + +The same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects: + +* `push(task, priority, [callback])` - `priority` should be a number. If an array of + `tasks` is given, all tasks will be assigned the same priority. +* The `unshift` method was removed. + +--------------------------------------- + + +### cargo(worker, [payload]) + +Creates a `cargo` object with the specified payload. Tasks added to the +cargo will be processed altogether (up to the `payload` limit). If the +`worker` is in progress, the task is queued until it becomes available. Once +the `worker` has completed some tasks, each callback of those tasks is called. +Check out [this animation](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) for how `cargo` and `queue` work. + +While [queue](#queue) passes only one task to one of a group of workers +at a time, cargo passes an array of tasks to a single worker, repeating +when the worker is finished. + +__Arguments__ + +* `worker(tasks, callback)` - An asynchronous function for processing an array of + queued tasks, which must call its `callback(err)` argument when finished, with + an optional `err` argument. +* `payload` - An optional `integer` for determining how many tasks should be + processed per round; if omitted, the default is unlimited. + +__Cargo objects__ + +The `cargo` object returned by this function has the following properties and +methods: + +* `length()` - A function returning the number of items waiting to be processed. +* `payload` - An `integer` for determining how many tasks should be + process per round. This property can be changed after a `cargo` is created to + alter the payload on-the-fly. +* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called + once the `worker` has finished processing the task. Instead of a single task, an array of `tasks` + can be submitted. The respective callback is used for every task in the list. +* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued. +* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`. +* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`. + +__Example__ + +```js +// create a cargo object with payload 2 + +var cargo = async.cargo(function (tasks, callback) { + for(var i=0; i +### auto(tasks, [callback]) + +Determines the best order for running the functions in `tasks`, based on their +requirements. Each function can optionally depend on other functions being completed +first, and each function is run as soon as its requirements are satisfied. + +If any of the functions pass an error to their callback, it will not +complete (so any other functions depending on it will not run), and the main +`callback` is immediately called with the error. Functions also receive an +object containing the results of functions which have completed so far. + +Note, all functions are called with a `results` object as a second argument, +so it is unsafe to pass functions in the `tasks` object which cannot handle the +extra argument. + +For example, this snippet of code: + +```js +async.auto({ + readData: async.apply(fs.readFile, 'data.txt', 'utf-8') +}, callback); +``` + +will have the effect of calling `readFile` with the results object as the last +argument, which will fail: + +```js +fs.readFile('data.txt', 'utf-8', cb, {}); +``` + +Instead, wrap the call to `readFile` in a function which does not forward the +`results` object: + +```js +async.auto({ + readData: function(cb, results){ + fs.readFile('data.txt', 'utf-8', cb); + } +}, callback); +``` + +__Arguments__ + +* `tasks` - An object. Each of its properties is either a function or an array of + requirements, with the function itself the last item in the array. The object's key + of a property serves as the name of the task defined by that property, + i.e. can be used when specifying requirements for other tasks. + The function receives two arguments: (1) a `callback(err, result)` which must be + called when finished, passing an `error` (which can be `null`) and the result of + the function's execution, and (2) a `results` object, containing the results of + the previously executed functions. +* `callback(err, results)` - An optional callback which is called when all the + tasks have been completed. It receives the `err` argument if any `tasks` + pass an error to their callback. Results are always returned; however, if + an error occurs, no further `tasks` will be performed, and the results + object will only contain partial results. + + +__Example__ + +```js +async.auto({ + get_data: function(callback){ + console.log('in get_data'); + // async code to get some data + callback(null, 'data', 'converted to array'); + }, + make_folder: function(callback){ + console.log('in make_folder'); + // async code to create a directory to store a file in + // this is run at the same time as getting the data + callback(null, 'folder'); + }, + write_file: ['get_data', 'make_folder', function(callback, results){ + console.log('in write_file', JSON.stringify(results)); + // once there is some data and the directory exists, + // write the data to a file in the directory + callback(null, 'filename'); + }], + email_link: ['write_file', function(callback, results){ + console.log('in email_link', JSON.stringify(results)); + // once the file is written let's email a link to it... + // results.write_file contains the filename returned by write_file. + callback(null, {'file':results.write_file, 'email':'user@example.com'}); + }] +}, function(err, results) { + console.log('err = ', err); + console.log('results = ', results); +}); +``` + +This is a fairly trivial example, but to do this using the basic parallel and +series functions would look like this: + +```js +async.parallel([ + function(callback){ + console.log('in get_data'); + // async code to get some data + callback(null, 'data', 'converted to array'); + }, + function(callback){ + console.log('in make_folder'); + // async code to create a directory to store a file in + // this is run at the same time as getting the data + callback(null, 'folder'); + } +], +function(err, results){ + async.series([ + function(callback){ + console.log('in write_file', JSON.stringify(results)); + // once there is some data and the directory exists, + // write the data to a file in the directory + results.push('filename'); + callback(null); + }, + function(callback){ + console.log('in email_link', JSON.stringify(results)); + // once the file is written let's email a link to it... + callback(null, {'file':results.pop(), 'email':'user@example.com'}); + } + ]); +}); +``` + +For a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding +new tasks much easier (and the code more readable). + + +--------------------------------------- + + +### retry([times = 5], task, [callback]) + +Attempts to get a successful response from `task` no more than `times` times before +returning an error. If the task is successful, the `callback` will be passed the result +of the successful task. If all attempts fail, the callback will be passed the error and +result (if any) of the final attempt. + +__Arguments__ + +* `times` - An integer indicating how many times to attempt the `task` before giving up. Defaults to 5. +* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)` + which must be called when finished, passing `err` (which can be `null`) and the `result` of + the function's execution, and (2) a `results` object, containing the results of + the previously executed functions (if nested inside another control flow). +* `callback(err, results)` - An optional callback which is called when the + task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`. + +The [`retry`](#retry) function can be used as a stand-alone control flow by passing a +callback, as shown below: + +```js +async.retry(3, apiMethod, function(err, result) { + // do something with the result +}); +``` + +It can also be embeded within other control flow functions to retry individual methods +that are not as reliable, like this: + +```js +async.auto({ + users: api.getUsers.bind(api), + payments: async.retry(3, api.getPayments.bind(api)) +}, function(err, results) { + // do something with the results +}); +``` + + +--------------------------------------- + + +### iterator(tasks) + +Creates an iterator function which calls the next function in the `tasks` array, +returning a continuation to call the next one after that. It's also possible to +“peek” at the next iterator with `iterator.next()`. + +This function is used internally by the `async` module, but can be useful when +you want to manually control the flow of functions in series. + +__Arguments__ + +* `tasks` - An array of functions to run. + +__Example__ + +```js +var iterator = async.iterator([ + function(){ sys.p('one'); }, + function(){ sys.p('two'); }, + function(){ sys.p('three'); } +]); + +node> var iterator2 = iterator(); +'one' +node> var iterator3 = iterator2(); +'two' +node> iterator3(); +'three' +node> var nextfn = iterator2.next(); +node> nextfn(); +'three' +``` + +--------------------------------------- + + +### apply(function, arguments..) + +Creates a continuation function with some arguments already applied. + +Useful as a shorthand when combined with other control flow functions. Any arguments +passed to the returned function are added to the arguments originally passed +to apply. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to automatically apply when the + continuation is called. + +__Example__ + +```js +// using apply + +async.parallel([ + async.apply(fs.writeFile, 'testfile1', 'test1'), + async.apply(fs.writeFile, 'testfile2', 'test2'), +]); + + +// the same process without using apply + +async.parallel([ + function(callback){ + fs.writeFile('testfile1', 'test1', callback); + }, + function(callback){ + fs.writeFile('testfile2', 'test2', callback); + } +]); +``` + +It's possible to pass any number of additional arguments when calling the +continuation: + +```js +node> var fn = async.apply(sys.puts, 'one'); +node> fn('two', 'three'); +one +two +three +``` + +--------------------------------------- + + +### nextTick(callback), setImmediate(callback) + +Calls `callback` on a later loop around the event loop. In Node.js this just +calls `process.nextTick`; in the browser it falls back to `setImmediate(callback)` +if available, otherwise `setTimeout(callback, 0)`, which means other higher priority +events may precede the execution of `callback`. + +This is used internally for browser-compatibility purposes. + +__Arguments__ + +* `callback` - The function to call on a later loop around the event loop. + +__Example__ + +```js +var call_order = []; +async.nextTick(function(){ + call_order.push('two'); + // call_order now equals ['one','two'] +}); +call_order.push('one') +``` + + +### times(n, callback) + +Calls the `callback` function `n` times, and accumulates results in the same manner +you would use with [`map`](#map). + +__Arguments__ + +* `n` - The number of times to run the function. +* `callback` - The function to call `n` times. + +__Example__ + +```js +// Pretend this is some complicated async factory +var createUser = function(id, callback) { + callback(null, { + id: 'user' + id + }) +} +// generate 5 users +async.times(5, function(n, next){ + createUser(n, function(err, user) { + next(err, user) + }) +}, function(err, users) { + // we should now have 5 users +}); +``` + + +### timesSeries(n, callback) + +The same as [`times`](#times), only the iterator is applied to each item in `arr` in +series. The next `iterator` is only called once the current one has completed. +The results array will be in the same order as the original. + + +## Utils + + +### memoize(fn, [hasher]) + +Caches the results of an `async` function. When creating a hash to store function +results against, the callback is omitted from the hash and an optional hash +function can be used. + +The cache of results is exposed as the `memo` property of the function returned +by `memoize`. + +__Arguments__ + +* `fn` - The function to proxy and cache results from. +* `hasher` - Tn optional function for generating a custom hash for storing + results. It has all the arguments applied to it apart from the callback, and + must be synchronous. + +__Example__ + +```js +var slow_fn = function (name, callback) { + // do something + callback(null, result); +}; +var fn = async.memoize(slow_fn); + +// fn can now be used as if it were slow_fn +fn('some name', function () { + // callback +}); +``` + + +### unmemoize(fn) + +Undoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized +form. Handy for testing. + +__Arguments__ + +* `fn` - the memoized function + + +### log(function, arguments) + +Logs the result of an `async` function to the `console`. Only works in Node.js or +in browsers that support `console.log` and `console.error` (such as FF and Chrome). +If multiple arguments are returned from the async function, `console.log` is +called on each argument in order. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to apply to the function. + +__Example__ + +```js +var hello = function(name, callback){ + setTimeout(function(){ + callback(null, 'hello ' + name); + }, 1000); +}; +``` +```js +node> async.log(hello, 'world'); +'hello world' +``` + +--------------------------------------- + + +### dir(function, arguments) + +Logs the result of an `async` function to the `console` using `console.dir` to +display the properties of the resulting object. Only works in Node.js or +in browsers that support `console.dir` and `console.error` (such as FF and Chrome). +If multiple arguments are returned from the async function, `console.dir` is +called on each argument in order. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to apply to the function. + +__Example__ + +```js +var hello = function(name, callback){ + setTimeout(function(){ + callback(null, {hello: name}); + }, 1000); +}; +``` +```js +node> async.dir(hello, 'world'); +{hello: 'world'} +``` + +--------------------------------------- + + +### noConflict() + +Changes the value of `async` back to its original value, returning a reference to the +`async` object. diff --git a/packages/NoGit.0.1.0/node_modules/async/bower.json b/packages/NoGit.0.1.0/node_modules/async/bower.json new file mode 100644 index 0000000..1817688 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/async/bower.json @@ -0,0 +1,38 @@ +{ + "name": "async", + "description": "Higher-order functions and common patterns for asynchronous code", + "version": "0.9.2", + "main": "lib/async.js", + "keywords": [ + "async", + "callback", + "utility", + "module" + ], + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/caolan/async.git" + }, + "devDependencies": { + "nodeunit": ">0.0.0", + "uglify-js": "1.2.x", + "nodelint": ">0.0.0", + "lodash": ">=2.4.1" + }, + "moduleType": [ + "amd", + "globals", + "node" + ], + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "authors": [ + "Caolan McMahon" + ] +} \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/async/component.json b/packages/NoGit.0.1.0/node_modules/async/component.json new file mode 100644 index 0000000..5003a7c --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/async/component.json @@ -0,0 +1,16 @@ +{ + "name": "async", + "description": "Higher-order functions and common patterns for asynchronous code", + "version": "0.9.2", + "keywords": [ + "async", + "callback", + "utility", + "module" + ], + "license": "MIT", + "repository": "caolan/async", + "scripts": [ + "lib/async.js" + ] +} \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/async/lib/async.js b/packages/NoGit.0.1.0/node_modules/async/lib/async.js new file mode 100644 index 0000000..394c41c --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/async/lib/async.js @@ -0,0 +1,1123 @@ +/*! + * async + * https://github.com/caolan/async + * + * Copyright 2010-2014 Caolan McMahon + * Released under the MIT license + */ +/*jshint onevar: false, indent:4 */ +/*global setImmediate: false, setTimeout: false, console: false */ +(function () { + + var async = {}; + + // global on the server, window in the browser + var root, previous_async; + + root = this; + if (root != null) { + previous_async = root.async; + } + + async.noConflict = function () { + root.async = previous_async; + return async; + }; + + function only_once(fn) { + var called = false; + return function() { + if (called) throw new Error("Callback was already called."); + called = true; + fn.apply(root, arguments); + } + } + + //// cross-browser compatiblity functions //// + + var _toString = Object.prototype.toString; + + var _isArray = Array.isArray || function (obj) { + return _toString.call(obj) === '[object Array]'; + }; + + var _each = function (arr, iterator) { + for (var i = 0; i < arr.length; i += 1) { + iterator(arr[i], i, arr); + } + }; + + var _map = function (arr, iterator) { + if (arr.map) { + return arr.map(iterator); + } + var results = []; + _each(arr, function (x, i, a) { + results.push(iterator(x, i, a)); + }); + return results; + }; + + var _reduce = function (arr, iterator, memo) { + if (arr.reduce) { + return arr.reduce(iterator, memo); + } + _each(arr, function (x, i, a) { + memo = iterator(memo, x, i, a); + }); + return memo; + }; + + var _keys = function (obj) { + if (Object.keys) { + return Object.keys(obj); + } + var keys = []; + for (var k in obj) { + if (obj.hasOwnProperty(k)) { + keys.push(k); + } + } + return keys; + }; + + //// exported async module functions //// + + //// nextTick implementation with browser-compatible fallback //// + if (typeof process === 'undefined' || !(process.nextTick)) { + if (typeof setImmediate === 'function') { + async.nextTick = function (fn) { + // not a direct alias for IE10 compatibility + setImmediate(fn); + }; + async.setImmediate = async.nextTick; + } + else { + async.nextTick = function (fn) { + setTimeout(fn, 0); + }; + async.setImmediate = async.nextTick; + } + } + else { + async.nextTick = process.nextTick; + if (typeof setImmediate !== 'undefined') { + async.setImmediate = function (fn) { + // not a direct alias for IE10 compatibility + setImmediate(fn); + }; + } + else { + async.setImmediate = async.nextTick; + } + } + + async.each = function (arr, iterator, callback) { + callback = callback || function () {}; + if (!arr.length) { + return callback(); + } + var completed = 0; + _each(arr, function (x) { + iterator(x, only_once(done) ); + }); + function done(err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + if (completed >= arr.length) { + callback(); + } + } + } + }; + async.forEach = async.each; + + async.eachSeries = function (arr, iterator, callback) { + callback = callback || function () {}; + if (!arr.length) { + return callback(); + } + var completed = 0; + var iterate = function () { + iterator(arr[completed], function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + if (completed >= arr.length) { + callback(); + } + else { + iterate(); + } + } + }); + }; + iterate(); + }; + async.forEachSeries = async.eachSeries; + + async.eachLimit = function (arr, limit, iterator, callback) { + var fn = _eachLimit(limit); + fn.apply(null, [arr, iterator, callback]); + }; + async.forEachLimit = async.eachLimit; + + var _eachLimit = function (limit) { + + return function (arr, iterator, callback) { + callback = callback || function () {}; + if (!arr.length || limit <= 0) { + return callback(); + } + var completed = 0; + var started = 0; + var running = 0; + + (function replenish () { + if (completed >= arr.length) { + return callback(); + } + + while (running < limit && started < arr.length) { + started += 1; + running += 1; + iterator(arr[started - 1], function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + running -= 1; + if (completed >= arr.length) { + callback(); + } + else { + replenish(); + } + } + }); + } + })(); + }; + }; + + + var doParallel = function (fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [async.each].concat(args)); + }; + }; + var doParallelLimit = function(limit, fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [_eachLimit(limit)].concat(args)); + }; + }; + var doSeries = function (fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [async.eachSeries].concat(args)); + }; + }; + + + var _asyncMap = function (eachfn, arr, iterator, callback) { + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + if (!callback) { + eachfn(arr, function (x, callback) { + iterator(x.value, function (err) { + callback(err); + }); + }); + } else { + var results = []; + eachfn(arr, function (x, callback) { + iterator(x.value, function (err, v) { + results[x.index] = v; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + async.map = doParallel(_asyncMap); + async.mapSeries = doSeries(_asyncMap); + async.mapLimit = function (arr, limit, iterator, callback) { + return _mapLimit(limit)(arr, iterator, callback); + }; + + var _mapLimit = function(limit) { + return doParallelLimit(limit, _asyncMap); + }; + + // reduce only has a series version, as doing reduce in parallel won't + // work in many situations. + async.reduce = function (arr, memo, iterator, callback) { + async.eachSeries(arr, function (x, callback) { + iterator(memo, x, function (err, v) { + memo = v; + callback(err); + }); + }, function (err) { + callback(err, memo); + }); + }; + // inject alias + async.inject = async.reduce; + // foldl alias + async.foldl = async.reduce; + + async.reduceRight = function (arr, memo, iterator, callback) { + var reversed = _map(arr, function (x) { + return x; + }).reverse(); + async.reduce(reversed, memo, iterator, callback); + }; + // foldr alias + async.foldr = async.reduceRight; + + var _filter = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + }; + async.filter = doParallel(_filter); + async.filterSeries = doSeries(_filter); + // select alias + async.select = async.filter; + async.selectSeries = async.filterSeries; + + var _reject = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (!v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + }; + async.reject = doParallel(_reject); + async.rejectSeries = doSeries(_reject); + + var _detect = function (eachfn, arr, iterator, main_callback) { + eachfn(arr, function (x, callback) { + iterator(x, function (result) { + if (result) { + main_callback(x); + main_callback = function () {}; + } + else { + callback(); + } + }); + }, function (err) { + main_callback(); + }); + }; + async.detect = doParallel(_detect); + async.detectSeries = doSeries(_detect); + + async.some = function (arr, iterator, main_callback) { + async.each(arr, function (x, callback) { + iterator(x, function (v) { + if (v) { + main_callback(true); + main_callback = function () {}; + } + callback(); + }); + }, function (err) { + main_callback(false); + }); + }; + // any alias + async.any = async.some; + + async.every = function (arr, iterator, main_callback) { + async.each(arr, function (x, callback) { + iterator(x, function (v) { + if (!v) { + main_callback(false); + main_callback = function () {}; + } + callback(); + }); + }, function (err) { + main_callback(true); + }); + }; + // all alias + async.all = async.every; + + async.sortBy = function (arr, iterator, callback) { + async.map(arr, function (x, callback) { + iterator(x, function (err, criteria) { + if (err) { + callback(err); + } + else { + callback(null, {value: x, criteria: criteria}); + } + }); + }, function (err, results) { + if (err) { + return callback(err); + } + else { + var fn = function (left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }; + callback(null, _map(results.sort(fn), function (x) { + return x.value; + })); + } + }); + }; + + async.auto = function (tasks, callback) { + callback = callback || function () {}; + var keys = _keys(tasks); + var remainingTasks = keys.length + if (!remainingTasks) { + return callback(); + } + + var results = {}; + + var listeners = []; + var addListener = function (fn) { + listeners.unshift(fn); + }; + var removeListener = function (fn) { + for (var i = 0; i < listeners.length; i += 1) { + if (listeners[i] === fn) { + listeners.splice(i, 1); + return; + } + } + }; + var taskComplete = function () { + remainingTasks-- + _each(listeners.slice(0), function (fn) { + fn(); + }); + }; + + addListener(function () { + if (!remainingTasks) { + var theCallback = callback; + // prevent final callback from calling itself if it errors + callback = function () {}; + + theCallback(null, results); + } + }); + + _each(keys, function (k) { + var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]]; + var taskCallback = function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + if (err) { + var safeResults = {}; + _each(_keys(results), function(rkey) { + safeResults[rkey] = results[rkey]; + }); + safeResults[k] = args; + callback(err, safeResults); + // stop subsequent errors hitting callback multiple times + callback = function () {}; + } + else { + results[k] = args; + async.setImmediate(taskComplete); + } + }; + var requires = task.slice(0, Math.abs(task.length - 1)) || []; + var ready = function () { + return _reduce(requires, function (a, x) { + return (a && results.hasOwnProperty(x)); + }, true) && !results.hasOwnProperty(k); + }; + if (ready()) { + task[task.length - 1](taskCallback, results); + } + else { + var listener = function () { + if (ready()) { + removeListener(listener); + task[task.length - 1](taskCallback, results); + } + }; + addListener(listener); + } + }); + }; + + async.retry = function(times, task, callback) { + var DEFAULT_TIMES = 5; + var attempts = []; + // Use defaults if times not passed + if (typeof times === 'function') { + callback = task; + task = times; + times = DEFAULT_TIMES; + } + // Make sure times is a number + times = parseInt(times, 10) || DEFAULT_TIMES; + var wrappedTask = function(wrappedCallback, wrappedResults) { + var retryAttempt = function(task, finalAttempt) { + return function(seriesCallback) { + task(function(err, result){ + seriesCallback(!err || finalAttempt, {err: err, result: result}); + }, wrappedResults); + }; + }; + while (times) { + attempts.push(retryAttempt(task, !(times-=1))); + } + async.series(attempts, function(done, data){ + data = data[data.length - 1]; + (wrappedCallback || callback)(data.err, data.result); + }); + } + // If a callback is passed, run this as a controll flow + return callback ? wrappedTask() : wrappedTask + }; + + async.waterfall = function (tasks, callback) { + callback = callback || function () {}; + if (!_isArray(tasks)) { + var err = new Error('First argument to waterfall must be an array of functions'); + return callback(err); + } + if (!tasks.length) { + return callback(); + } + var wrapIterator = function (iterator) { + return function (err) { + if (err) { + callback.apply(null, arguments); + callback = function () {}; + } + else { + var args = Array.prototype.slice.call(arguments, 1); + var next = iterator.next(); + if (next) { + args.push(wrapIterator(next)); + } + else { + args.push(callback); + } + async.setImmediate(function () { + iterator.apply(null, args); + }); + } + }; + }; + wrapIterator(async.iterator(tasks))(); + }; + + var _parallel = function(eachfn, tasks, callback) { + callback = callback || function () {}; + if (_isArray(tasks)) { + eachfn.map(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args); + }); + } + }, callback); + } + else { + var results = {}; + eachfn.each(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.parallel = function (tasks, callback) { + _parallel({ map: async.map, each: async.each }, tasks, callback); + }; + + async.parallelLimit = function(tasks, limit, callback) { + _parallel({ map: _mapLimit(limit), each: _eachLimit(limit) }, tasks, callback); + }; + + async.series = function (tasks, callback) { + callback = callback || function () {}; + if (_isArray(tasks)) { + async.mapSeries(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args); + }); + } + }, callback); + } + else { + var results = {}; + async.eachSeries(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.iterator = function (tasks) { + var makeCallback = function (index) { + var fn = function () { + if (tasks.length) { + tasks[index].apply(null, arguments); + } + return fn.next(); + }; + fn.next = function () { + return (index < tasks.length - 1) ? makeCallback(index + 1): null; + }; + return fn; + }; + return makeCallback(0); + }; + + async.apply = function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + return function () { + return fn.apply( + null, args.concat(Array.prototype.slice.call(arguments)) + ); + }; + }; + + var _concat = function (eachfn, arr, fn, callback) { + var r = []; + eachfn(arr, function (x, cb) { + fn(x, function (err, y) { + r = r.concat(y || []); + cb(err); + }); + }, function (err) { + callback(err, r); + }); + }; + async.concat = doParallel(_concat); + async.concatSeries = doSeries(_concat); + + async.whilst = function (test, iterator, callback) { + if (test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.whilst(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.doWhilst = function (iterator, test, callback) { + iterator(function (err) { + if (err) { + return callback(err); + } + var args = Array.prototype.slice.call(arguments, 1); + if (test.apply(null, args)) { + async.doWhilst(iterator, test, callback); + } + else { + callback(); + } + }); + }; + + async.until = function (test, iterator, callback) { + if (!test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.until(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.doUntil = function (iterator, test, callback) { + iterator(function (err) { + if (err) { + return callback(err); + } + var args = Array.prototype.slice.call(arguments, 1); + if (!test.apply(null, args)) { + async.doUntil(iterator, test, callback); + } + else { + callback(); + } + }); + }; + + async.queue = function (worker, concurrency) { + if (concurrency === undefined) { + concurrency = 1; + } + function _insert(q, data, pos, callback) { + if (!q.started){ + q.started = true; + } + if (!_isArray(data)) { + data = [data]; + } + if(data.length == 0) { + // call drain immediately if there are no tasks + return async.setImmediate(function() { + if (q.drain) { + q.drain(); + } + }); + } + _each(data, function(task) { + var item = { + data: task, + callback: typeof callback === 'function' ? callback : null + }; + + if (pos) { + q.tasks.unshift(item); + } else { + q.tasks.push(item); + } + + if (q.saturated && q.tasks.length === q.concurrency) { + q.saturated(); + } + async.setImmediate(q.process); + }); + } + + var workers = 0; + var q = { + tasks: [], + concurrency: concurrency, + saturated: null, + empty: null, + drain: null, + started: false, + paused: false, + push: function (data, callback) { + _insert(q, data, false, callback); + }, + kill: function () { + q.drain = null; + q.tasks = []; + }, + unshift: function (data, callback) { + _insert(q, data, true, callback); + }, + process: function () { + if (!q.paused && workers < q.concurrency && q.tasks.length) { + var task = q.tasks.shift(); + if (q.empty && q.tasks.length === 0) { + q.empty(); + } + workers += 1; + var next = function () { + workers -= 1; + if (task.callback) { + task.callback.apply(task, arguments); + } + if (q.drain && q.tasks.length + workers === 0) { + q.drain(); + } + q.process(); + }; + var cb = only_once(next); + worker(task.data, cb); + } + }, + length: function () { + return q.tasks.length; + }, + running: function () { + return workers; + }, + idle: function() { + return q.tasks.length + workers === 0; + }, + pause: function () { + if (q.paused === true) { return; } + q.paused = true; + }, + resume: function () { + if (q.paused === false) { return; } + q.paused = false; + // Need to call q.process once per concurrent + // worker to preserve full concurrency after pause + for (var w = 1; w <= q.concurrency; w++) { + async.setImmediate(q.process); + } + } + }; + return q; + }; + + async.priorityQueue = function (worker, concurrency) { + + function _compareTasks(a, b){ + return a.priority - b.priority; + }; + + function _binarySearch(sequence, item, compare) { + var beg = -1, + end = sequence.length - 1; + while (beg < end) { + var mid = beg + ((end - beg + 1) >>> 1); + if (compare(item, sequence[mid]) >= 0) { + beg = mid; + } else { + end = mid - 1; + } + } + return beg; + } + + function _insert(q, data, priority, callback) { + if (!q.started){ + q.started = true; + } + if (!_isArray(data)) { + data = [data]; + } + if(data.length == 0) { + // call drain immediately if there are no tasks + return async.setImmediate(function() { + if (q.drain) { + q.drain(); + } + }); + } + _each(data, function(task) { + var item = { + data: task, + priority: priority, + callback: typeof callback === 'function' ? callback : null + }; + + q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item); + + if (q.saturated && q.tasks.length === q.concurrency) { + q.saturated(); + } + async.setImmediate(q.process); + }); + } + + // Start with a normal queue + var q = async.queue(worker, concurrency); + + // Override push to accept second parameter representing priority + q.push = function (data, priority, callback) { + _insert(q, data, priority, callback); + }; + + // Remove unshift function + delete q.unshift; + + return q; + }; + + async.cargo = function (worker, payload) { + var working = false, + tasks = []; + + var cargo = { + tasks: tasks, + payload: payload, + saturated: null, + empty: null, + drain: null, + drained: true, + push: function (data, callback) { + if (!_isArray(data)) { + data = [data]; + } + _each(data, function(task) { + tasks.push({ + data: task, + callback: typeof callback === 'function' ? callback : null + }); + cargo.drained = false; + if (cargo.saturated && tasks.length === payload) { + cargo.saturated(); + } + }); + async.setImmediate(cargo.process); + }, + process: function process() { + if (working) return; + if (tasks.length === 0) { + if(cargo.drain && !cargo.drained) cargo.drain(); + cargo.drained = true; + return; + } + + var ts = typeof payload === 'number' + ? tasks.splice(0, payload) + : tasks.splice(0, tasks.length); + + var ds = _map(ts, function (task) { + return task.data; + }); + + if(cargo.empty) cargo.empty(); + working = true; + worker(ds, function () { + working = false; + + var args = arguments; + _each(ts, function (data) { + if (data.callback) { + data.callback.apply(null, args); + } + }); + + process(); + }); + }, + length: function () { + return tasks.length; + }, + running: function () { + return working; + } + }; + return cargo; + }; + + var _console_fn = function (name) { + return function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + fn.apply(null, args.concat([function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (typeof console !== 'undefined') { + if (err) { + if (console.error) { + console.error(err); + } + } + else if (console[name]) { + _each(args, function (x) { + console[name](x); + }); + } + } + }])); + }; + }; + async.log = _console_fn('log'); + async.dir = _console_fn('dir'); + /*async.info = _console_fn('info'); + async.warn = _console_fn('warn'); + async.error = _console_fn('error');*/ + + async.memoize = function (fn, hasher) { + var memo = {}; + var queues = {}; + hasher = hasher || function (x) { + return x; + }; + var memoized = function () { + var args = Array.prototype.slice.call(arguments); + var callback = args.pop(); + var key = hasher.apply(null, args); + if (key in memo) { + async.nextTick(function () { + callback.apply(null, memo[key]); + }); + } + else if (key in queues) { + queues[key].push(callback); + } + else { + queues[key] = [callback]; + fn.apply(null, args.concat([function () { + memo[key] = arguments; + var q = queues[key]; + delete queues[key]; + for (var i = 0, l = q.length; i < l; i++) { + q[i].apply(null, arguments); + } + }])); + } + }; + memoized.memo = memo; + memoized.unmemoized = fn; + return memoized; + }; + + async.unmemoize = function (fn) { + return function () { + return (fn.unmemoized || fn).apply(null, arguments); + }; + }; + + async.times = function (count, iterator, callback) { + var counter = []; + for (var i = 0; i < count; i++) { + counter.push(i); + } + return async.map(counter, iterator, callback); + }; + + async.timesSeries = function (count, iterator, callback) { + var counter = []; + for (var i = 0; i < count; i++) { + counter.push(i); + } + return async.mapSeries(counter, iterator, callback); + }; + + async.seq = function (/* functions... */) { + var fns = arguments; + return function () { + var that = this; + var args = Array.prototype.slice.call(arguments); + var callback = args.pop(); + async.reduce(fns, args, function (newargs, fn, cb) { + fn.apply(that, newargs.concat([function () { + var err = arguments[0]; + var nextargs = Array.prototype.slice.call(arguments, 1); + cb(err, nextargs); + }])) + }, + function (err, results) { + callback.apply(that, [err].concat(results)); + }); + }; + }; + + async.compose = function (/* functions... */) { + return async.seq.apply(null, Array.prototype.reverse.call(arguments)); + }; + + var _applyEach = function (eachfn, fns /*args...*/) { + var go = function () { + var that = this; + var args = Array.prototype.slice.call(arguments); + var callback = args.pop(); + return eachfn(fns, function (fn, cb) { + fn.apply(that, args.concat([cb])); + }, + callback); + }; + if (arguments.length > 2) { + var args = Array.prototype.slice.call(arguments, 2); + return go.apply(this, args); + } + else { + return go; + } + }; + async.applyEach = doParallel(_applyEach); + async.applyEachSeries = doSeries(_applyEach); + + async.forever = function (fn, callback) { + function next(err) { + if (err) { + if (callback) { + return callback(err); + } + throw err; + } + fn(next); + } + next(); + }; + + // Node.js + if (typeof module !== 'undefined' && module.exports) { + module.exports = async; + } + // AMD / RequireJS + else if (typeof define !== 'undefined' && define.amd) { + define([], function () { + return async; + }); + } + // included directly via +``` + +Using [`npm`](http://npmjs.org/): + +```bash +npm install lodash + +npm install -g lodash +npm link lodash +``` + +To avoid potential issues, update `npm` before installing Lo-Dash: + +```bash +npm install npm -g +``` + +In [Node.js](http://nodejs.org/) and [RingoJS ≥ v0.8.0](http://ringojs.org/): + +```js +var _ = require('lodash'); + +// or as a drop-in replacement for Underscore +var _ = require('lodash/dist/lodash.underscore'); +``` + +**Note:** If Lo-Dash is installed globally, run [`npm link lodash`](http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/) in your project’s root directory before requiring it. + +In [RingoJS ≤ v0.7.0](http://ringojs.org/): + +```js +var _ = require('lodash')._; +``` + +In [Rhino](http://www.mozilla.org/rhino/): + +```js +load('lodash.js'); +``` + +In an AMD loader like [RequireJS](http://requirejs.org/): + +```js +require({ + 'paths': { + 'underscore': 'path/to/lodash' + } +}, +['underscore'], function(_) { + console.log(_.VERSION); +}); +``` + +## Release Notes + +### v1.3.1 + + * Added missing `cache` property to the objects returned by `getObject` + * Ensured `maxWait` unit tests pass in Ringo + * Increased the `maxPoolSize` value + * Optimized `releaseArray` and `releaseObject` + +### v1.3.0 + + * Added `_.transform` method + * Added `_.chain` and `_.findWhere` aliases + * Added internal array and object pooling + * Added Istanbul test coverage reports to Travis CI + * Added `maxWait` option to `_.debounce` + * Added support for floating point numbers to `_.random` + * Added Volo configuration to package.json + * Adjusted UMD for `component build` + * Allowed more stable mixing of `lodash` and `underscore` build methods + * Ensured debounced function with, `leading` and `trailing` options, works as expected + * Ensured minified builds work with the Dojo builder + * Ensured minification avoids deoptimizing expressions containing boolean values + * Ensured unknown types return `false` in `_.isObject` and `_.isRegExp` + * Ensured `_.clone`, `_.flatten`, and `_.uniq` can be used as a `callback` for methods like `_.map` + * Ensured `_.forIn` works on objects with longer inheritance chains in IE < 9 + * Ensured `_.isPlainObject` returns `true` for empty objects in IE < 9 + * Ensured `_.max` and `_.min` chain correctly + * Ensured `clearTimeout` use doesn’t cause errors in Titanium + * Ensured that the `--stdout` build option doesn't write to a file + * Exposed memoized function’s `cache` + * Fixed `Error.prototype` iteration bugs + * Fixed "scripts" paths in component.json + * Made methods support customizing `_.indexOf` + * Made the build track dependencies of private functions + * Made the `template` pre-compiler build option avoid escaping non-ascii characters + * Made `_.createCallback` avoid binding functions if they don’t reference `this` + * Optimized the Closure Compiler minification process + * Optimized the large array cache for `_.difference`, `_.intersection`, and `_.uniq` + * Optimized internal `_.flatten` and `_.indexOf` use + * Reduced `_.unzip` and `_.zip` + * Removed special handling of arrays in `_.assign` and `_.defaults` + +The full changelog is available [here](https://github.com/lodash/lodash/wiki/Changelog). + +## BestieJS + +Lo-Dash is part of the [BestieJS](https://github.com/bestiejs) *“Best in Class”* module collection. This means we promote solid browser/environment support, ES5+ precedents, unit testing, and plenty of documentation. + +## Author + +| [![twitter/jdalton](http://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](http://twitter.com/jdalton "Follow @jdalton on Twitter") | +|---| +| [John-David Dalton](http://allyoucanleet.com/) | + +## Contributors + +| [![twitter/blainebublitz](http://gravatar.com/avatar/ac1c67fd906c9fecd823ce302283b4c1?s=70)](http://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [![twitter/kitcambridge](http://gravatar.com/avatar/6662a1d02f351b5ef2f8b4d815804661?s=70)](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [![twitter/mathias](http://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](http://twitter.com/mathias "Follow @mathias on Twitter") | +|---|---|---| +| [Blaine Bublitz](http://iceddev.com/) | [Kit Cambridge](http://kitcambridge.github.io/) | [Mathias Bynens](http://mathiasbynens.be/) | diff --git a/packages/NoGit.0.1.0/node_modules/global-tunnel/node_modules/lodash/dist/lodash.compat.js b/packages/NoGit.0.1.0/node_modules/global-tunnel/node_modules/lodash/dist/lodash.compat.js new file mode 100644 index 0000000..7dc1deb --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/global-tunnel/node_modules/lodash/dist/lodash.compat.js @@ -0,0 +1,5909 @@ +/** + * @license + * Lo-Dash 1.3.1 (Custom Build) + * Build: `lodash -o ./dist/lodash.compat.js` + * Copyright 2012-2013 The Dojo Foundation + * Based on Underscore.js 1.4.4 + * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud Inc. + * Available under MIT license + */ +;(function(window) { + + /** Used as a safe reference for `undefined` in pre ES5 environments */ + var undefined; + + /** Used to pool arrays and objects used internally */ + var arrayPool = [], + objectPool = []; + + /** Used to generate unique IDs */ + var idCounter = 0; + + /** Used internally to indicate various things */ + var indicatorObject = {}; + + /** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */ + var keyPrefix = +new Date + ''; + + /** Used as the size when optimizations are enabled for large arrays */ + var largeArraySize = 75; + + /** Used as the max size of the `arrayPool` and `objectPool` */ + var maxPoolSize = 40; + + /** Used to match empty string literals in compiled template source */ + var reEmptyStringLeading = /\b__p \+= '';/g, + reEmptyStringMiddle = /\b(__p \+=) '' \+/g, + reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; + + /** Used to match HTML entities */ + var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g; + + /** + * Used to match ES6 template delimiters + * http://people.mozilla.org/~jorendorff/es6-draft.html#sec-7.8.6 + */ + var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; + + /** Used to match regexp flags from their coerced string values */ + var reFlags = /\w*$/; + + /** Used to match "interpolate" template delimiters */ + var reInterpolate = /<%=([\s\S]+?)%>/g; + + /** Used to detect functions containing a `this` reference */ + var reThis = (reThis = /\bthis\b/) && reThis.test(runInContext) && reThis; + + /** Used to detect and test whitespace */ + var whitespace = ( + // whitespace + ' \t\x0B\f\xA0\ufeff' + + + // line terminators + '\n\r\u2028\u2029' + + + // unicode category "Zs" space separators + '\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000' + ); + + /** Used to match leading whitespace and zeros to be removed */ + var reLeadingSpacesAndZeros = RegExp('^[' + whitespace + ']*0+(?=.$)'); + + /** Used to ensure capturing order of template delimiters */ + var reNoMatch = /($^)/; + + /** Used to match HTML characters */ + var reUnescapedHtml = /[&<>"']/g; + + /** Used to match unescaped characters in compiled string literals */ + var reUnescapedString = /['\n\r\t\u2028\u2029\\]/g; + + /** Used to assign default `context` object properties */ + var contextProps = [ + 'Array', 'Boolean', 'Date', 'Error', 'Function', 'Math', 'Number', 'Object', + 'RegExp', 'String', '_', 'attachEvent', 'clearTimeout', 'isFinite', 'isNaN', + 'parseInt', 'setImmediate', 'setTimeout' + ]; + + /** Used to fix the JScript [[DontEnum]] bug */ + var shadowedProps = [ + 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', + 'toLocaleString', 'toString', 'valueOf' + ]; + + /** Used to make template sourceURLs easier to identify */ + var templateCounter = 0; + + /** `Object#toString` result shortcuts */ + var argsClass = '[object Arguments]', + arrayClass = '[object Array]', + boolClass = '[object Boolean]', + dateClass = '[object Date]', + errorClass = '[object Error]', + funcClass = '[object Function]', + numberClass = '[object Number]', + objectClass = '[object Object]', + regexpClass = '[object RegExp]', + stringClass = '[object String]'; + + /** Used to identify object classifications that `_.clone` supports */ + var cloneableClasses = {}; + cloneableClasses[funcClass] = false; + cloneableClasses[argsClass] = cloneableClasses[arrayClass] = + cloneableClasses[boolClass] = cloneableClasses[dateClass] = + cloneableClasses[numberClass] = cloneableClasses[objectClass] = + cloneableClasses[regexpClass] = cloneableClasses[stringClass] = true; + + /** Used to determine if values are of the language type Object */ + var objectTypes = { + 'boolean': false, + 'function': true, + 'object': true, + 'number': false, + 'string': false, + 'undefined': false + }; + + /** Used to escape characters for inclusion in compiled string literals */ + var stringEscapes = { + '\\': '\\', + "'": "'", + '\n': 'n', + '\r': 'r', + '\t': 't', + '\u2028': 'u2028', + '\u2029': 'u2029' + }; + + /** Detect free variable `exports` */ + var freeExports = objectTypes[typeof exports] && exports; + + /** Detect free variable `module` */ + var freeModule = objectTypes[typeof module] && module && module.exports == freeExports && module; + + /** Detect free variable `global`, from Node.js or Browserified code, and use it as `window` */ + var freeGlobal = objectTypes[typeof global] && global; + if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal)) { + window = freeGlobal; + } + + /*--------------------------------------------------------------------------*/ + + /** + * A basic implementation of `_.indexOf` without support for binary searches + * or `fromIndex` constraints. + * + * @private + * @param {Array} array The array to search. + * @param {Mixed} value The value to search for. + * @param {Number} [fromIndex=0] The index to search from. + * @returns {Number} Returns the index of the matched value or `-1`. + */ + function basicIndexOf(array, value, fromIndex) { + var index = (fromIndex || 0) - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; + } + + /** + * An implementation of `_.contains` for cache objects that mimics the return + * signature of `_.indexOf` by returning `0` if the value is found, else `-1`. + * + * @private + * @param {Object} cache The cache object to inspect. + * @param {Mixed} value The value to search for. + * @returns {Number} Returns `0` if `value` is found, else `-1`. + */ + function cacheIndexOf(cache, value) { + var type = typeof value; + cache = cache.cache; + + if (type == 'boolean' || value == null) { + return cache[value]; + } + if (type != 'number' && type != 'string') { + type = 'object'; + } + var key = type == 'number' ? value : keyPrefix + value; + cache = cache[type] || (cache[type] = {}); + + return type == 'object' + ? (cache[key] && basicIndexOf(cache[key], value) > -1 ? 0 : -1) + : (cache[key] ? 0 : -1); + } + + /** + * Adds a given `value` to the corresponding cache object. + * + * @private + * @param {Mixed} value The value to add to the cache. + */ + function cachePush(value) { + var cache = this.cache, + type = typeof value; + + if (type == 'boolean' || value == null) { + cache[value] = true; + } else { + if (type != 'number' && type != 'string') { + type = 'object'; + } + var key = type == 'number' ? value : keyPrefix + value, + typeCache = cache[type] || (cache[type] = {}); + + if (type == 'object') { + if ((typeCache[key] || (typeCache[key] = [])).push(value) == this.array.length) { + cache[type] = false; + } + } else { + typeCache[key] = true; + } + } + } + + /** + * Used by `_.max` and `_.min` as the default `callback` when a given + * `collection` is a string value. + * + * @private + * @param {String} value The character to inspect. + * @returns {Number} Returns the code unit of given character. + */ + function charAtCallback(value) { + return value.charCodeAt(0); + } + + /** + * Used by `sortBy` to compare transformed `collection` values, stable sorting + * them in ascending order. + * + * @private + * @param {Object} a The object to compare to `b`. + * @param {Object} b The object to compare to `a`. + * @returns {Number} Returns the sort order indicator of `1` or `-1`. + */ + function compareAscending(a, b) { + var ai = a.index, + bi = b.index; + + a = a.criteria; + b = b.criteria; + + // ensure a stable sort in V8 and other engines + // http://code.google.com/p/v8/issues/detail?id=90 + if (a !== b) { + if (a > b || typeof a == 'undefined') { + return 1; + } + if (a < b || typeof b == 'undefined') { + return -1; + } + } + return ai < bi ? -1 : 1; + } + + /** + * Creates a cache object to optimize linear searches of large arrays. + * + * @private + * @param {Array} [array=[]] The array to search. + * @returns {Null|Object} Returns the cache object or `null` if caching should not be used. + */ + function createCache(array) { + var index = -1, + length = array.length; + + var cache = getObject(); + cache['false'] = cache['null'] = cache['true'] = cache['undefined'] = false; + + var result = getObject(); + result.array = array; + result.cache = cache; + result.push = cachePush; + + while (++index < length) { + result.push(array[index]); + } + return cache.object === false + ? (releaseObject(result), null) + : result; + } + + /** + * Used by `template` to escape characters for inclusion in compiled + * string literals. + * + * @private + * @param {String} match The matched character to escape. + * @returns {String} Returns the escaped character. + */ + function escapeStringChar(match) { + return '\\' + stringEscapes[match]; + } + + /** + * Gets an array from the array pool or creates a new one if the pool is empty. + * + * @private + * @returns {Array} The array from the pool. + */ + function getArray() { + return arrayPool.pop() || []; + } + + /** + * Gets an object from the object pool or creates a new one if the pool is empty. + * + * @private + * @returns {Object} The object from the pool. + */ + function getObject() { + return objectPool.pop() || { + 'args': '', + 'array': null, + 'bottom': '', + 'cache': null, + 'criteria': null, + 'false': false, + 'firstArg': '', + 'index': 0, + 'init': '', + 'leading': false, + 'loop': '', + 'maxWait': 0, + 'null': false, + 'number': null, + 'object': null, + 'push': null, + 'shadowedProps': null, + 'string': null, + 'top': '', + 'trailing': false, + 'true': false, + 'undefined': false, + 'useHas': false, + 'useKeys': false, + 'value': null + }; + } + + /** + * Checks if `value` is a DOM node in IE < 9. + * + * @private + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true` if the `value` is a DOM node, else `false`. + */ + function isNode(value) { + // IE < 9 presents DOM nodes as `Object` objects except they have `toString` + // methods that are `typeof` "string" and still can coerce nodes to strings + return typeof value.toString != 'function' && typeof (value + '') == 'string'; + } + + /** + * A no-operation function. + * + * @private + */ + function noop() { + // no operation performed + } + + /** + * Releases the given `array` back to the array pool. + * + * @private + * @param {Array} [array] The array to release. + */ + function releaseArray(array) { + array.length = 0; + if (arrayPool.length < maxPoolSize) { + arrayPool.push(array); + } + } + + /** + * Releases the given `object` back to the object pool. + * + * @private + * @param {Object} [object] The object to release. + */ + function releaseObject(object) { + var cache = object.cache; + if (cache) { + releaseObject(cache); + } + object.array = object.cache = object.criteria = object.object = object.number = object.string = object.value = null; + if (objectPool.length < maxPoolSize) { + objectPool.push(object); + } + } + + /** + * Slices the `collection` from the `start` index up to, but not including, + * the `end` index. + * + * Note: This function is used, instead of `Array#slice`, to support node lists + * in IE < 9 and to ensure dense arrays are returned. + * + * @private + * @param {Array|Object|String} collection The collection to slice. + * @param {Number} start The start index. + * @param {Number} end The end index. + * @returns {Array} Returns the new array. + */ + function slice(array, start, end) { + start || (start = 0); + if (typeof end == 'undefined') { + end = array ? array.length : 0; + } + var index = -1, + length = end - start || 0, + result = Array(length < 0 ? 0 : length); + + while (++index < length) { + result[index] = array[start + index]; + } + return result; + } + + /*--------------------------------------------------------------------------*/ + + /** + * Create a new `lodash` function using the given `context` object. + * + * @static + * @memberOf _ + * @category Utilities + * @param {Object} [context=window] The context object. + * @returns {Function} Returns the `lodash` function. + */ + function runInContext(context) { + // Avoid issues with some ES3 environments that attempt to use values, named + // after built-in constructors like `Object`, for the creation of literals. + // ES5 clears this up by stating that literals must use built-in constructors. + // See http://es5.github.com/#x11.1.5. + context = context ? _.defaults(window.Object(), context, _.pick(window, contextProps)) : window; + + /** Native constructor references */ + var Array = context.Array, + Boolean = context.Boolean, + Date = context.Date, + Error = context.Error, + Function = context.Function, + Math = context.Math, + Number = context.Number, + Object = context.Object, + RegExp = context.RegExp, + String = context.String, + TypeError = context.TypeError; + + /** + * Used for `Array` method references. + * + * Normally `Array.prototype` would suffice, however, using an array literal + * avoids issues in Narwhal. + */ + var arrayRef = []; + + /** Used for native method references */ + var errorProto = Error.prototype, + objectProto = Object.prototype, + stringProto = String.prototype; + + /** Used to restore the original `_` reference in `noConflict` */ + var oldDash = context._; + + /** Used to detect if a method is native */ + var reNative = RegExp('^' + + String(objectProto.valueOf) + .replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + .replace(/valueOf|for [^\]]+/g, '.+?') + '$' + ); + + /** Native method shortcuts */ + var ceil = Math.ceil, + clearTimeout = context.clearTimeout, + concat = arrayRef.concat, + floor = Math.floor, + fnToString = Function.prototype.toString, + getPrototypeOf = reNative.test(getPrototypeOf = Object.getPrototypeOf) && getPrototypeOf, + hasOwnProperty = objectProto.hasOwnProperty, + push = arrayRef.push, + propertyIsEnumerable = objectProto.propertyIsEnumerable, + setImmediate = context.setImmediate, + setTimeout = context.setTimeout, + toString = objectProto.toString; + + /* Native method shortcuts for methods with the same name as other `lodash` methods */ + var nativeBind = reNative.test(nativeBind = toString.bind) && nativeBind, + nativeCreate = reNative.test(nativeCreate = Object.create) && nativeCreate, + nativeIsArray = reNative.test(nativeIsArray = Array.isArray) && nativeIsArray, + nativeIsFinite = context.isFinite, + nativeIsNaN = context.isNaN, + nativeKeys = reNative.test(nativeKeys = Object.keys) && nativeKeys, + nativeMax = Math.max, + nativeMin = Math.min, + nativeParseInt = context.parseInt, + nativeRandom = Math.random, + nativeSlice = arrayRef.slice; + + /** Detect various environments */ + var isIeOpera = reNative.test(context.attachEvent), + isV8 = nativeBind && !/\n|true/.test(nativeBind + isIeOpera); + + /** Used to lookup a built-in constructor by [[Class]] */ + var ctorByClass = {}; + ctorByClass[arrayClass] = Array; + ctorByClass[boolClass] = Boolean; + ctorByClass[dateClass] = Date; + ctorByClass[funcClass] = Function; + ctorByClass[objectClass] = Object; + ctorByClass[numberClass] = Number; + ctorByClass[regexpClass] = RegExp; + ctorByClass[stringClass] = String; + + /** Used to avoid iterating non-enumerable properties in IE < 9 */ + var nonEnumProps = {}; + nonEnumProps[arrayClass] = nonEnumProps[dateClass] = nonEnumProps[numberClass] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true }; + nonEnumProps[boolClass] = nonEnumProps[stringClass] = { 'constructor': true, 'toString': true, 'valueOf': true }; + nonEnumProps[errorClass] = nonEnumProps[funcClass] = nonEnumProps[regexpClass] = { 'constructor': true, 'toString': true }; + nonEnumProps[objectClass] = { 'constructor': true }; + + (function() { + var length = shadowedProps.length; + while (length--) { + var prop = shadowedProps[length]; + for (var className in nonEnumProps) { + if (hasOwnProperty.call(nonEnumProps, className) && !hasOwnProperty.call(nonEnumProps[className], prop)) { + nonEnumProps[className][prop] = false; + } + } + } + }()); + + /*--------------------------------------------------------------------------*/ + + /** + * Creates a `lodash` object, which wraps the given `value`, to enable method + * chaining. + * + * In addition to Lo-Dash methods, wrappers also have the following `Array` methods: + * `concat`, `join`, `pop`, `push`, `reverse`, `shift`, `slice`, `sort`, `splice`, + * and `unshift` + * + * Chaining is supported in custom builds as long as the `value` method is + * implicitly or explicitly included in the build. + * + * The chainable wrapper functions are: + * `after`, `assign`, `bind`, `bindAll`, `bindKey`, `chain`, `compact`, + * `compose`, `concat`, `countBy`, `createCallback`, `debounce`, `defaults`, + * `defer`, `delay`, `difference`, `filter`, `flatten`, `forEach`, `forIn`, + * `forOwn`, `functions`, `groupBy`, `initial`, `intersection`, `invert`, + * `invoke`, `keys`, `map`, `max`, `memoize`, `merge`, `min`, `object`, `omit`, + * `once`, `pairs`, `partial`, `partialRight`, `pick`, `pluck`, `push`, `range`, + * `reject`, `rest`, `reverse`, `shuffle`, `slice`, `sort`, `sortBy`, `splice`, + * `tap`, `throttle`, `times`, `toArray`, `transform`, `union`, `uniq`, `unshift`, + * `unzip`, `values`, `where`, `without`, `wrap`, and `zip` + * + * The non-chainable wrapper functions are: + * `clone`, `cloneDeep`, `contains`, `escape`, `every`, `find`, `has`, + * `identity`, `indexOf`, `isArguments`, `isArray`, `isBoolean`, `isDate`, + * `isElement`, `isEmpty`, `isEqual`, `isFinite`, `isFunction`, `isNaN`, + * `isNull`, `isNumber`, `isObject`, `isPlainObject`, `isRegExp`, `isString`, + * `isUndefined`, `join`, `lastIndexOf`, `mixin`, `noConflict`, `parseInt`, + * `pop`, `random`, `reduce`, `reduceRight`, `result`, `shift`, `size`, `some`, + * `sortedIndex`, `runInContext`, `template`, `unescape`, `uniqueId`, and `value` + * + * The wrapper functions `first` and `last` return wrapped values when `n` is + * passed, otherwise they return unwrapped values. + * + * @name _ + * @constructor + * @alias chain + * @category Chaining + * @param {Mixed} value The value to wrap in a `lodash` instance. + * @returns {Object} Returns a `lodash` instance. + * @example + * + * var wrapped = _([1, 2, 3]); + * + * // returns an unwrapped value + * wrapped.reduce(function(sum, num) { + * return sum + num; + * }); + * // => 6 + * + * // returns a wrapped value + * var squares = wrapped.map(function(num) { + * return num * num; + * }); + * + * _.isArray(squares); + * // => false + * + * _.isArray(squares.value()); + * // => true + */ + function lodash(value) { + // don't wrap if already wrapped, even if wrapped by a different `lodash` constructor + return (value && typeof value == 'object' && !isArray(value) && hasOwnProperty.call(value, '__wrapped__')) + ? value + : new lodashWrapper(value); + } + + /** + * A fast path for creating `lodash` wrapper objects. + * + * @private + * @param {Mixed} value The value to wrap in a `lodash` instance. + * @returns {Object} Returns a `lodash` instance. + */ + function lodashWrapper(value) { + this.__wrapped__ = value; + } + // ensure `new lodashWrapper` is an instance of `lodash` + lodashWrapper.prototype = lodash.prototype; + + /** + * An object used to flag environments features. + * + * @static + * @memberOf _ + * @type Object + */ + var support = lodash.support = {}; + + (function() { + var ctor = function() { this.x = 1; }, + object = { '0': 1, 'length': 1 }, + props = []; + + ctor.prototype = { 'valueOf': 1, 'y': 1 }; + for (var prop in new ctor) { props.push(prop); } + for (prop in arguments) { } + + /** + * Detect if `arguments` objects are `Object` objects (all but Narwhal and Opera < 10.5). + * + * @memberOf _.support + * @type Boolean + */ + support.argsObject = arguments.constructor == Object && !(arguments instanceof Array); + + /** + * Detect if an `arguments` object's [[Class]] is resolvable (all but Firefox < 4, IE < 9). + * + * @memberOf _.support + * @type Boolean + */ + support.argsClass = isArguments(arguments); + + /** + * Detect if `name` or `message` properties of `Error.prototype` are + * enumerable by default. (IE < 9, Safari < 5.1) + * + * @memberOf _.support + * @type Boolean + */ + support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') || propertyIsEnumerable.call(errorProto, 'name'); + + /** + * Detect if `prototype` properties are enumerable by default. + * + * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1 + * (if the prototype or a property on the prototype has been set) + * incorrectly sets a function's `prototype` property [[Enumerable]] + * value to `true`. + * + * @memberOf _.support + * @type Boolean + */ + support.enumPrototypes = propertyIsEnumerable.call(ctor, 'prototype'); + + /** + * Detect if `Function#bind` exists and is inferred to be fast (all but V8). + * + * @memberOf _.support + * @type Boolean + */ + support.fastBind = nativeBind && !isV8; + + /** + * Detect if own properties are iterated after inherited properties (all but IE < 9). + * + * @memberOf _.support + * @type Boolean + */ + support.ownLast = props[0] != 'x'; + + /** + * Detect if `arguments` object indexes are non-enumerable + * (Firefox < 4, IE < 9, PhantomJS, Safari < 5.1). + * + * @memberOf _.support + * @type Boolean + */ + support.nonEnumArgs = prop != 0; + + /** + * Detect if properties shadowing those on `Object.prototype` are non-enumerable. + * + * In IE < 9 an objects own properties, shadowing non-enumerable ones, are + * made non-enumerable as well (a.k.a the JScript [[DontEnum]] bug). + * + * @memberOf _.support + * @type Boolean + */ + support.nonEnumShadows = !/valueOf/.test(props); + + /** + * Detect if `Array#shift` and `Array#splice` augment array-like objects correctly. + * + * Firefox < 10, IE compatibility mode, and IE < 9 have buggy Array `shift()` + * and `splice()` functions that fail to remove the last element, `value[0]`, + * of array-like objects even though the `length` property is set to `0`. + * The `shift()` method is buggy in IE 8 compatibility mode, while `splice()` + * is buggy regardless of mode in IE < 9 and buggy in compatibility mode in IE 9. + * + * @memberOf _.support + * @type Boolean + */ + support.spliceObjects = (arrayRef.splice.call(object, 0, 1), !object[0]); + + /** + * Detect lack of support for accessing string characters by index. + * + * IE < 8 can't access characters by index and IE 8 can only access + * characters by index on string literals. + * + * @memberOf _.support + * @type Boolean + */ + support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx'; + + /** + * Detect if a DOM node's [[Class]] is resolvable (all but IE < 9) + * and that the JS engine errors when attempting to coerce an object to + * a string without a `toString` function. + * + * @memberOf _.support + * @type Boolean + */ + try { + support.nodeClass = !(toString.call(document) == objectClass && !({ 'toString': 0 } + '')); + } catch(e) { + support.nodeClass = true; + } + }(1)); + + /** + * By default, the template delimiters used by Lo-Dash are similar to those in + * embedded Ruby (ERB). Change the following template settings to use alternative + * delimiters. + * + * @static + * @memberOf _ + * @type Object + */ + lodash.templateSettings = { + + /** + * Used to detect `data` property values to be HTML-escaped. + * + * @memberOf _.templateSettings + * @type RegExp + */ + 'escape': /<%-([\s\S]+?)%>/g, + + /** + * Used to detect code to be evaluated. + * + * @memberOf _.templateSettings + * @type RegExp + */ + 'evaluate': /<%([\s\S]+?)%>/g, + + /** + * Used to detect `data` property values to inject. + * + * @memberOf _.templateSettings + * @type RegExp + */ + 'interpolate': reInterpolate, + + /** + * Used to reference the data object in the template text. + * + * @memberOf _.templateSettings + * @type String + */ + 'variable': '', + + /** + * Used to import variables into the compiled template. + * + * @memberOf _.templateSettings + * @type Object + */ + 'imports': { + + /** + * A reference to the `lodash` function. + * + * @memberOf _.templateSettings.imports + * @type Function + */ + '_': lodash + } + }; + + /*--------------------------------------------------------------------------*/ + + /** + * The template used to create iterator functions. + * + * @private + * @param {Object} data The data object used to populate the text. + * @returns {String} Returns the interpolated text. + */ + var iteratorTemplate = function(obj) { + + var __p = 'var index, iterable = ' + + (obj.firstArg) + + ', result = ' + + (obj.init) + + ';\nif (!iterable) return result;\n' + + (obj.top) + + ';'; + if (obj.array) { + __p += '\nvar length = iterable.length; index = -1;\nif (' + + (obj.array) + + ') { '; + if (support.unindexedChars) { + __p += '\n if (isString(iterable)) {\n iterable = iterable.split(\'\')\n } '; + } + __p += '\n while (++index < length) {\n ' + + (obj.loop) + + ';\n }\n}\nelse { '; + } else if (support.nonEnumArgs) { + __p += '\n var length = iterable.length; index = -1;\n if (length && isArguments(iterable)) {\n while (++index < length) {\n index += \'\';\n ' + + (obj.loop) + + ';\n }\n } else { '; + } + + if (support.enumPrototypes) { + __p += '\n var skipProto = typeof iterable == \'function\';\n '; + } + + if (support.enumErrorProps) { + __p += '\n var skipErrorProps = iterable === errorProto || iterable instanceof Error;\n '; + } + + var conditions = []; if (support.enumPrototypes) { conditions.push('!(skipProto && index == "prototype")'); } if (support.enumErrorProps) { conditions.push('!(skipErrorProps && (index == "message" || index == "name"))'); } + + if (obj.useHas && obj.useKeys) { + __p += '\n var ownIndex = -1,\n ownProps = objectTypes[typeof iterable] && keys(iterable),\n length = ownProps ? ownProps.length : 0;\n\n while (++ownIndex < length) {\n index = ownProps[ownIndex];\n'; + if (conditions.length) { + __p += ' if (' + + (conditions.join(' && ')) + + ') {\n '; + } + __p += + (obj.loop) + + '; '; + if (conditions.length) { + __p += '\n }'; + } + __p += '\n } '; + } else { + __p += '\n for (index in iterable) {\n'; + if (obj.useHas) { conditions.push("hasOwnProperty.call(iterable, index)"); } if (conditions.length) { + __p += ' if (' + + (conditions.join(' && ')) + + ') {\n '; + } + __p += + (obj.loop) + + '; '; + if (conditions.length) { + __p += '\n }'; + } + __p += '\n } '; + if (support.nonEnumShadows) { + __p += '\n\n if (iterable !== objectProto) {\n var ctor = iterable.constructor,\n isProto = iterable === (ctor && ctor.prototype),\n className = iterable === stringProto ? stringClass : iterable === errorProto ? errorClass : toString.call(iterable),\n nonEnum = nonEnumProps[className];\n '; + for (k = 0; k < 7; k++) { + __p += '\n index = \'' + + (obj.shadowedProps[k]) + + '\';\n if ((!(isProto && nonEnum[index]) && hasOwnProperty.call(iterable, index))'; + if (!obj.useHas) { + __p += ' || (!nonEnum[index] && iterable[index] !== objectProto[index])'; + } + __p += ') {\n ' + + (obj.loop) + + ';\n } '; + } + __p += '\n } '; + } + + } + + if (obj.array || support.nonEnumArgs) { + __p += '\n}'; + } + __p += + (obj.bottom) + + ';\nreturn result'; + + return __p + }; + + /** Reusable iterator options for `assign` and `defaults` */ + var defaultsIteratorOptions = { + 'args': 'object, source, guard', + 'top': + 'var args = arguments,\n' + + ' argsIndex = 0,\n' + + " argsLength = typeof guard == 'number' ? 2 : args.length;\n" + + 'while (++argsIndex < argsLength) {\n' + + ' iterable = args[argsIndex];\n' + + ' if (iterable && objectTypes[typeof iterable]) {', + 'loop': "if (typeof result[index] == 'undefined') result[index] = iterable[index]", + 'bottom': ' }\n}' + }; + + /** Reusable iterator options shared by `each`, `forIn`, and `forOwn` */ + var eachIteratorOptions = { + 'args': 'collection, callback, thisArg', + 'top': "callback = callback && typeof thisArg == 'undefined' ? callback : lodash.createCallback(callback, thisArg)", + 'array': "typeof length == 'number'", + 'loop': 'if (callback(iterable[index], index, collection) === false) return result' + }; + + /** Reusable iterator options for `forIn` and `forOwn` */ + var forOwnIteratorOptions = { + 'top': 'if (!objectTypes[typeof iterable]) return result;\n' + eachIteratorOptions.top, + 'array': false + }; + + /*--------------------------------------------------------------------------*/ + + /** + * Creates a function that, when called, invokes `func` with the `this` binding + * of `thisArg` and prepends any `partialArgs` to the arguments passed to the + * bound function. + * + * @private + * @param {Function|String} func The function to bind or the method name. + * @param {Mixed} [thisArg] The `this` binding of `func`. + * @param {Array} partialArgs An array of arguments to be partially applied. + * @param {Object} [idicator] Used to indicate binding by key or partially + * applying arguments from the right. + * @returns {Function} Returns the new bound function. + */ + function createBound(func, thisArg, partialArgs, indicator) { + var isFunc = isFunction(func), + isPartial = !partialArgs, + key = thisArg; + + // juggle arguments + if (isPartial) { + var rightIndicator = indicator; + partialArgs = thisArg; + } + else if (!isFunc) { + if (!indicator) { + throw new TypeError; + } + thisArg = func; + } + + function bound() { + // `Function#bind` spec + // http://es5.github.com/#x15.3.4.5 + var args = arguments, + thisBinding = isPartial ? this : thisArg; + + if (!isFunc) { + func = thisArg[key]; + } + if (partialArgs.length) { + args = args.length + ? (args = nativeSlice.call(args), rightIndicator ? args.concat(partialArgs) : partialArgs.concat(args)) + : partialArgs; + } + if (this instanceof bound) { + // ensure `new bound` is an instance of `func` + thisBinding = createObject(func.prototype); + + // mimic the constructor's `return` behavior + // http://es5.github.com/#x13.2.2 + var result = func.apply(thisBinding, args); + return isObject(result) ? result : thisBinding; + } + return func.apply(thisBinding, args); + } + return bound; + } + + /** + * Creates compiled iteration functions. + * + * @private + * @param {Object} [options1, options2, ...] The compile options object(s). + * array - A string of code to determine if the iterable is an array or array-like. + * useHas - A boolean to specify using `hasOwnProperty` checks in the object loop. + * useKeys - A boolean to specify using `_.keys` for own property iteration. + * args - A string of comma separated arguments the iteration function will accept. + * top - A string of code to execute before the iteration branches. + * loop - A string of code to execute in the object loop. + * bottom - A string of code to execute after the iteration branches. + * @returns {Function} Returns the compiled function. + */ + function createIterator() { + var data = getObject(); + + // data properties + data.shadowedProps = shadowedProps; + // iterator options + data.array = data.bottom = data.loop = data.top = ''; + data.init = 'iterable'; + data.useHas = true; + data.useKeys = !!keys; + + // merge options into a template data object + for (var object, index = 0; object = arguments[index]; index++) { + for (var key in object) { + data[key] = object[key]; + } + } + var args = data.args; + data.firstArg = /^[^,]+/.exec(args)[0]; + + // create the function factory + var factory = Function( + 'errorClass, errorProto, hasOwnProperty, isArguments, isArray, ' + + 'isString, keys, lodash, objectProto, objectTypes, nonEnumProps, ' + + 'stringClass, stringProto, toString', + 'return function(' + args + ') {\n' + iteratorTemplate(data) + '\n}' + ); + + releaseObject(data); + + // return the compiled function + return factory( + errorClass, errorProto, hasOwnProperty, isArguments, isArray, + isString, keys, lodash, objectProto, objectTypes, nonEnumProps, + stringClass, stringProto, toString + ); + } + + /** + * Creates a new object with the specified `prototype`. + * + * @private + * @param {Object} prototype The prototype object. + * @returns {Object} Returns the new object. + */ + function createObject(prototype) { + return isObject(prototype) ? nativeCreate(prototype) : {}; + } + // fallback for browsers without `Object.create` + if (!nativeCreate) { + var createObject = function(prototype) { + if (isObject(prototype)) { + noop.prototype = prototype; + var result = new noop; + noop.prototype = null; + } + return result || {}; + }; + } + + /** + * Used by `escape` to convert characters to HTML entities. + * + * @private + * @param {String} match The matched character to escape. + * @returns {String} Returns the escaped character. + */ + function escapeHtmlChar(match) { + return htmlEscapes[match]; + } + + /** + * Gets the appropriate "indexOf" function. If the `_.indexOf` method is + * customized, this method returns the custom method, otherwise it returns + * the `basicIndexOf` function. + * + * @private + * @returns {Function} Returns the "indexOf" function. + */ + function getIndexOf(array, value, fromIndex) { + var result = (result = lodash.indexOf) === indexOf ? basicIndexOf : result; + return result; + } + + /** + * Creates a function that juggles arguments, allowing argument overloading + * for `_.flatten` and `_.uniq`, before passing them to the given `func`. + * + * @private + * @param {Function} func The function to wrap. + * @returns {Function} Returns the new function. + */ + function overloadWrapper(func) { + return function(array, flag, callback, thisArg) { + // juggle arguments + if (typeof flag != 'boolean' && flag != null) { + thisArg = callback; + callback = !(thisArg && thisArg[flag] === array) ? flag : undefined; + flag = false; + } + if (callback != null) { + callback = lodash.createCallback(callback, thisArg); + } + return func(array, flag, callback, thisArg); + }; + } + + /** + * A fallback implementation of `isPlainObject` which checks if a given `value` + * is an object created by the `Object` constructor, assuming objects created + * by the `Object` constructor have no inherited enumerable properties and that + * there are no `Object.prototype` extensions. + * + * @private + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if `value` is a plain object, else `false`. + */ + function shimIsPlainObject(value) { + var ctor, + result; + + // avoid non Object objects, `arguments` objects, and DOM elements + if (!(value && toString.call(value) == objectClass) || + (ctor = value.constructor, isFunction(ctor) && !(ctor instanceof ctor)) || + (!support.argsClass && isArguments(value)) || + (!support.nodeClass && isNode(value))) { + return false; + } + // IE < 9 iterates inherited properties before own properties. If the first + // iterated property is an object's own property then there are no inherited + // enumerable properties. + if (support.ownLast) { + forIn(value, function(value, key, object) { + result = hasOwnProperty.call(object, key); + return false; + }); + return result !== false; + } + // In most environments an object's own properties are iterated before + // its inherited properties. If the last iterated property is an object's + // own property then there are no inherited enumerable properties. + forIn(value, function(value, key) { + result = key; + }); + return result === undefined || hasOwnProperty.call(value, result); + } + + /** + * Used by `unescape` to convert HTML entities to characters. + * + * @private + * @param {String} match The matched character to unescape. + * @returns {String} Returns the unescaped character. + */ + function unescapeHtmlChar(match) { + return htmlUnescapes[match]; + } + + /*--------------------------------------------------------------------------*/ + + /** + * Checks if `value` is an `arguments` object. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is an `arguments` object, else `false`. + * @example + * + * (function() { return _.isArguments(arguments); })(1, 2, 3); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + function isArguments(value) { + return toString.call(value) == argsClass; + } + // fallback for browsers that can't detect `arguments` objects by [[Class]] + if (!support.argsClass) { + isArguments = function(value) { + return value ? hasOwnProperty.call(value, 'callee') : false; + }; + } + + /** + * Checks if `value` is an array. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is an array, else `false`. + * @example + * + * (function() { return _.isArray(arguments); })(); + * // => false + * + * _.isArray([1, 2, 3]); + * // => true + */ + var isArray = nativeIsArray || function(value) { + return value ? (typeof value == 'object' && toString.call(value) == arrayClass) : false; + }; + + /** + * A fallback implementation of `Object.keys` which produces an array of the + * given object's own enumerable property names. + * + * @private + * @type Function + * @param {Object} object The object to inspect. + * @returns {Array} Returns a new array of property names. + */ + var shimKeys = createIterator({ + 'args': 'object', + 'init': '[]', + 'top': 'if (!(objectTypes[typeof object])) return result', + 'loop': 'result.push(index)' + }); + + /** + * Creates an array composed of the own enumerable property names of `object`. + * + * @static + * @memberOf _ + * @category Objects + * @param {Object} object The object to inspect. + * @returns {Array} Returns a new array of property names. + * @example + * + * _.keys({ 'one': 1, 'two': 2, 'three': 3 }); + * // => ['one', 'two', 'three'] (order is not guaranteed) + */ + var keys = !nativeKeys ? shimKeys : function(object) { + if (!isObject(object)) { + return []; + } + if ((support.enumPrototypes && typeof object == 'function') || + (support.nonEnumArgs && object.length && isArguments(object))) { + return shimKeys(object); + } + return nativeKeys(object); + }; + + /** + * A function compiled to iterate `arguments` objects, arrays, objects, and + * strings consistenly across environments, executing the `callback` for each + * element in the `collection`. The `callback` is bound to `thisArg` and invoked + * with three arguments; (value, index|key, collection). Callbacks may exit + * iteration early by explicitly returning `false`. + * + * @private + * @type Function + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function} [callback=identity] The function called per iteration. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Array|Object|String} Returns `collection`. + */ + var basicEach = createIterator(eachIteratorOptions); + + /** + * Used to convert characters to HTML entities: + * + * Though the `>` character is escaped for symmetry, characters like `>` and `/` + * don't require escaping in HTML and have no special meaning unless they're part + * of a tag or an unquoted attribute value. + * http://mathiasbynens.be/notes/ambiguous-ampersands (under "semi-related fun fact") + */ + var htmlEscapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' + }; + + /** Used to convert HTML entities to characters */ + var htmlUnescapes = invert(htmlEscapes); + + /*--------------------------------------------------------------------------*/ + + /** + * Assigns own enumerable properties of source object(s) to the destination + * object. Subsequent sources will overwrite property assignments of previous + * sources. If a `callback` function is passed, it will be executed to produce + * the assigned values. The `callback` is bound to `thisArg` and invoked with + * two arguments; (objectValue, sourceValue). + * + * @static + * @memberOf _ + * @type Function + * @alias extend + * @category Objects + * @param {Object} object The destination object. + * @param {Object} [source1, source2, ...] The source objects. + * @param {Function} [callback] The function to customize assigning values. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Object} Returns the destination object. + * @example + * + * _.assign({ 'name': 'moe' }, { 'age': 40 }); + * // => { 'name': 'moe', 'age': 40 } + * + * var defaults = _.partialRight(_.assign, function(a, b) { + * return typeof a == 'undefined' ? b : a; + * }); + * + * var food = { 'name': 'apple' }; + * defaults(food, { 'name': 'banana', 'type': 'fruit' }); + * // => { 'name': 'apple', 'type': 'fruit' } + */ + var assign = createIterator(defaultsIteratorOptions, { + 'top': + defaultsIteratorOptions.top.replace(';', + ';\n' + + "if (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\n" + + ' var callback = lodash.createCallback(args[--argsLength - 1], args[argsLength--], 2);\n' + + "} else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\n" + + ' callback = args[--argsLength];\n' + + '}' + ), + 'loop': 'result[index] = callback ? callback(result[index], iterable[index]) : iterable[index]' + }); + + /** + * Creates a clone of `value`. If `deep` is `true`, nested objects will also + * be cloned, otherwise they will be assigned by reference. If a `callback` + * function is passed, it will be executed to produce the cloned values. If + * `callback` returns `undefined`, cloning will be handled by the method instead. + * The `callback` is bound to `thisArg` and invoked with one argument; (value). + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to clone. + * @param {Boolean} [deep=false] A flag to indicate a deep clone. + * @param {Function} [callback] The function to customize cloning values. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @param- {Array} [stackA=[]] Tracks traversed source objects. + * @param- {Array} [stackB=[]] Associates clones with source counterparts. + * @returns {Mixed} Returns the cloned `value`. + * @example + * + * var stooges = [ + * { 'name': 'moe', 'age': 40 }, + * { 'name': 'larry', 'age': 50 } + * ]; + * + * var shallow = _.clone(stooges); + * shallow[0] === stooges[0]; + * // => true + * + * var deep = _.clone(stooges, true); + * deep[0] === stooges[0]; + * // => false + * + * _.mixin({ + * 'clone': _.partialRight(_.clone, function(value) { + * return _.isElement(value) ? value.cloneNode(false) : undefined; + * }) + * }); + * + * var clone = _.clone(document.body); + * clone.childNodes.length; + * // => 0 + */ + function clone(value, deep, callback, thisArg, stackA, stackB) { + var result = value; + + // allows working with "Collections" methods without using their `callback` + // argument, `index|key`, for this method's `callback` + if (typeof deep != 'boolean' && deep != null) { + thisArg = callback; + callback = deep; + deep = false; + } + if (typeof callback == 'function') { + callback = (typeof thisArg == 'undefined') + ? callback + : lodash.createCallback(callback, thisArg, 1); + + result = callback(result); + if (typeof result != 'undefined') { + return result; + } + result = value; + } + // inspect [[Class]] + var isObj = isObject(result); + if (isObj) { + var className = toString.call(result); + if (!cloneableClasses[className] || (!support.nodeClass && isNode(result))) { + return result; + } + var isArr = isArray(result); + } + // shallow clone + if (!isObj || !deep) { + return isObj + ? (isArr ? slice(result) : assign({}, result)) + : result; + } + var ctor = ctorByClass[className]; + switch (className) { + case boolClass: + case dateClass: + return new ctor(+result); + + case numberClass: + case stringClass: + return new ctor(result); + + case regexpClass: + return ctor(result.source, reFlags.exec(result)); + } + // check for circular references and return corresponding clone + var initedStack = !stackA; + stackA || (stackA = getArray()); + stackB || (stackB = getArray()); + + var length = stackA.length; + while (length--) { + if (stackA[length] == value) { + return stackB[length]; + } + } + // init cloned object + result = isArr ? ctor(result.length) : {}; + + // add array properties assigned by `RegExp#exec` + if (isArr) { + if (hasOwnProperty.call(value, 'index')) { + result.index = value.index; + } + if (hasOwnProperty.call(value, 'input')) { + result.input = value.input; + } + } + // add the source value to the stack of traversed objects + // and associate it with its clone + stackA.push(value); + stackB.push(result); + + // recursively populate clone (susceptible to call stack limits) + (isArr ? basicEach : forOwn)(value, function(objValue, key) { + result[key] = clone(objValue, deep, callback, undefined, stackA, stackB); + }); + + if (initedStack) { + releaseArray(stackA); + releaseArray(stackB); + } + return result; + } + + /** + * Creates a deep clone of `value`. If a `callback` function is passed, + * it will be executed to produce the cloned values. If `callback` returns + * `undefined`, cloning will be handled by the method instead. The `callback` + * is bound to `thisArg` and invoked with one argument; (value). + * + * Note: This method is loosely based on the structured clone algorithm. Functions + * and DOM nodes are **not** cloned. The enumerable properties of `arguments` objects and + * objects created by constructors other than `Object` are cloned to plain `Object` objects. + * See http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to deep clone. + * @param {Function} [callback] The function to customize cloning values. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Mixed} Returns the deep cloned `value`. + * @example + * + * var stooges = [ + * { 'name': 'moe', 'age': 40 }, + * { 'name': 'larry', 'age': 50 } + * ]; + * + * var deep = _.cloneDeep(stooges); + * deep[0] === stooges[0]; + * // => false + * + * var view = { + * 'label': 'docs', + * 'node': element + * }; + * + * var clone = _.cloneDeep(view, function(value) { + * return _.isElement(value) ? value.cloneNode(true) : undefined; + * }); + * + * clone.node == view.node; + * // => false + */ + function cloneDeep(value, callback, thisArg) { + return clone(value, true, callback, thisArg); + } + + /** + * Assigns own enumerable properties of source object(s) to the destination + * object for all destination properties that resolve to `undefined`. Once a + * property is set, additional defaults of the same property will be ignored. + * + * @static + * @memberOf _ + * @type Function + * @category Objects + * @param {Object} object The destination object. + * @param {Object} [source1, source2, ...] The source objects. + * @param- {Object} [guard] Allows working with `_.reduce` without using its + * callback's `key` and `object` arguments as sources. + * @returns {Object} Returns the destination object. + * @example + * + * var food = { 'name': 'apple' }; + * _.defaults(food, { 'name': 'banana', 'type': 'fruit' }); + * // => { 'name': 'apple', 'type': 'fruit' } + */ + var defaults = createIterator(defaultsIteratorOptions); + + /** + * This method is similar to `_.find`, except that it returns the key of the + * element that passes the callback check, instead of the element itself. + * + * @static + * @memberOf _ + * @category Objects + * @param {Object} object The object to search. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Mixed} Returns the key of the found element, else `undefined`. + * @example + * + * _.findKey({ 'a': 1, 'b': 2, 'c': 3, 'd': 4 }, function(num) { + * return num % 2 == 0; + * }); + * // => 'b' + */ + function findKey(object, callback, thisArg) { + var result; + callback = lodash.createCallback(callback, thisArg); + forOwn(object, function(value, key, object) { + if (callback(value, key, object)) { + result = key; + return false; + } + }); + return result; + } + + /** + * Iterates over `object`'s own and inherited enumerable properties, executing + * the `callback` for each property. The `callback` is bound to `thisArg` and + * invoked with three arguments; (value, key, object). Callbacks may exit iteration + * early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @type Function + * @category Objects + * @param {Object} object The object to iterate over. + * @param {Function} [callback=identity] The function called per iteration. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Object} Returns `object`. + * @example + * + * function Dog(name) { + * this.name = name; + * } + * + * Dog.prototype.bark = function() { + * alert('Woof, woof!'); + * }; + * + * _.forIn(new Dog('Dagny'), function(value, key) { + * alert(key); + * }); + * // => alerts 'name' and 'bark' (order is not guaranteed) + */ + var forIn = createIterator(eachIteratorOptions, forOwnIteratorOptions, { + 'useHas': false + }); + + /** + * Iterates over an object's own enumerable properties, executing the `callback` + * for each property. The `callback` is bound to `thisArg` and invoked with three + * arguments; (value, key, object). Callbacks may exit iteration early by explicitly + * returning `false`. + * + * @static + * @memberOf _ + * @type Function + * @category Objects + * @param {Object} object The object to iterate over. + * @param {Function} [callback=identity] The function called per iteration. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Object} Returns `object`. + * @example + * + * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) { + * alert(key); + * }); + * // => alerts '0', '1', and 'length' (order is not guaranteed) + */ + var forOwn = createIterator(eachIteratorOptions, forOwnIteratorOptions); + + /** + * Creates a sorted array of all enumerable properties, own and inherited, + * of `object` that have function values. + * + * @static + * @memberOf _ + * @alias methods + * @category Objects + * @param {Object} object The object to inspect. + * @returns {Array} Returns a new array of property names that have function values. + * @example + * + * _.functions(_); + * // => ['all', 'any', 'bind', 'bindAll', 'clone', 'compact', 'compose', ...] + */ + function functions(object) { + var result = []; + forIn(object, function(value, key) { + if (isFunction(value)) { + result.push(key); + } + }); + return result.sort(); + } + + /** + * Checks if the specified object `property` exists and is a direct property, + * instead of an inherited property. + * + * @static + * @memberOf _ + * @category Objects + * @param {Object} object The object to check. + * @param {String} property The property to check for. + * @returns {Boolean} Returns `true` if key is a direct property, else `false`. + * @example + * + * _.has({ 'a': 1, 'b': 2, 'c': 3 }, 'b'); + * // => true + */ + function has(object, property) { + return object ? hasOwnProperty.call(object, property) : false; + } + + /** + * Creates an object composed of the inverted keys and values of the given `object`. + * + * @static + * @memberOf _ + * @category Objects + * @param {Object} object The object to invert. + * @returns {Object} Returns the created inverted object. + * @example + * + * _.invert({ 'first': 'moe', 'second': 'larry' }); + * // => { 'moe': 'first', 'larry': 'second' } + */ + function invert(object) { + var index = -1, + props = keys(object), + length = props.length, + result = {}; + + while (++index < length) { + var key = props[index]; + result[object[key]] = key; + } + return result; + } + + /** + * Checks if `value` is a boolean value. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is a boolean value, else `false`. + * @example + * + * _.isBoolean(null); + * // => false + */ + function isBoolean(value) { + return value === true || value === false || toString.call(value) == boolClass; + } + + /** + * Checks if `value` is a date. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is a date, else `false`. + * @example + * + * _.isDate(new Date); + * // => true + */ + function isDate(value) { + return value ? (typeof value == 'object' && toString.call(value) == dateClass) : false; + } + + /** + * Checks if `value` is a DOM element. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is a DOM element, else `false`. + * @example + * + * _.isElement(document.body); + * // => true + */ + function isElement(value) { + return value ? value.nodeType === 1 : false; + } + + /** + * Checks if `value` is empty. Arrays, strings, or `arguments` objects with a + * length of `0` and objects with no own enumerable properties are considered + * "empty". + * + * @static + * @memberOf _ + * @category Objects + * @param {Array|Object|String} value The value to inspect. + * @returns {Boolean} Returns `true`, if the `value` is empty, else `false`. + * @example + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({}); + * // => true + * + * _.isEmpty(''); + * // => true + */ + function isEmpty(value) { + var result = true; + if (!value) { + return result; + } + var className = toString.call(value), + length = value.length; + + if ((className == arrayClass || className == stringClass || + (support.argsClass ? className == argsClass : isArguments(value))) || + (className == objectClass && typeof length == 'number' && isFunction(value.splice))) { + return !length; + } + forOwn(value, function() { + return (result = false); + }); + return result; + } + + /** + * Performs a deep comparison between two values to determine if they are + * equivalent to each other. If `callback` is passed, it will be executed to + * compare values. If `callback` returns `undefined`, comparisons will be handled + * by the method instead. The `callback` is bound to `thisArg` and invoked with + * two arguments; (a, b). + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} a The value to compare. + * @param {Mixed} b The other value to compare. + * @param {Function} [callback] The function to customize comparing values. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @param- {Array} [stackA=[]] Tracks traversed `a` objects. + * @param- {Array} [stackB=[]] Tracks traversed `b` objects. + * @returns {Boolean} Returns `true`, if the values are equivalent, else `false`. + * @example + * + * var moe = { 'name': 'moe', 'age': 40 }; + * var copy = { 'name': 'moe', 'age': 40 }; + * + * moe == copy; + * // => false + * + * _.isEqual(moe, copy); + * // => true + * + * var words = ['hello', 'goodbye']; + * var otherWords = ['hi', 'goodbye']; + * + * _.isEqual(words, otherWords, function(a, b) { + * var reGreet = /^(?:hello|hi)$/i, + * aGreet = _.isString(a) && reGreet.test(a), + * bGreet = _.isString(b) && reGreet.test(b); + * + * return (aGreet || bGreet) ? (aGreet == bGreet) : undefined; + * }); + * // => true + */ + function isEqual(a, b, callback, thisArg, stackA, stackB) { + // used to indicate that when comparing objects, `a` has at least the properties of `b` + var whereIndicator = callback === indicatorObject; + if (typeof callback == 'function' && !whereIndicator) { + callback = lodash.createCallback(callback, thisArg, 2); + var result = callback(a, b); + if (typeof result != 'undefined') { + return !!result; + } + } + // exit early for identical values + if (a === b) { + // treat `+0` vs. `-0` as not equal + return a !== 0 || (1 / a == 1 / b); + } + var type = typeof a, + otherType = typeof b; + + // exit early for unlike primitive values + if (a === a && + (!a || (type != 'function' && type != 'object')) && + (!b || (otherType != 'function' && otherType != 'object'))) { + return false; + } + // exit early for `null` and `undefined`, avoiding ES3's Function#call behavior + // http://es5.github.com/#x15.3.4.4 + if (a == null || b == null) { + return a === b; + } + // compare [[Class]] names + var className = toString.call(a), + otherClass = toString.call(b); + + if (className == argsClass) { + className = objectClass; + } + if (otherClass == argsClass) { + otherClass = objectClass; + } + if (className != otherClass) { + return false; + } + switch (className) { + case boolClass: + case dateClass: + // coerce dates and booleans to numbers, dates to milliseconds and booleans + // to `1` or `0`, treating invalid dates coerced to `NaN` as not equal + return +a == +b; + + case numberClass: + // treat `NaN` vs. `NaN` as equal + return (a != +a) + ? b != +b + // but treat `+0` vs. `-0` as not equal + : (a == 0 ? (1 / a == 1 / b) : a == +b); + + case regexpClass: + case stringClass: + // coerce regexes to strings (http://es5.github.com/#x15.10.6.4) + // treat string primitives and their corresponding object instances as equal + return a == String(b); + } + var isArr = className == arrayClass; + if (!isArr) { + // unwrap any `lodash` wrapped values + if (hasOwnProperty.call(a, '__wrapped__ ') || hasOwnProperty.call(b, '__wrapped__')) { + return isEqual(a.__wrapped__ || a, b.__wrapped__ || b, callback, thisArg, stackA, stackB); + } + // exit for functions and DOM nodes + if (className != objectClass || (!support.nodeClass && (isNode(a) || isNode(b)))) { + return false; + } + // in older versions of Opera, `arguments` objects have `Array` constructors + var ctorA = !support.argsObject && isArguments(a) ? Object : a.constructor, + ctorB = !support.argsObject && isArguments(b) ? Object : b.constructor; + + // non `Object` object instances with different constructors are not equal + if (ctorA != ctorB && !( + isFunction(ctorA) && ctorA instanceof ctorA && + isFunction(ctorB) && ctorB instanceof ctorB + )) { + return false; + } + } + // assume cyclic structures are equal + // the algorithm for detecting cyclic structures is adapted from ES 5.1 + // section 15.12.3, abstract operation `JO` (http://es5.github.com/#x15.12.3) + var initedStack = !stackA; + stackA || (stackA = getArray()); + stackB || (stackB = getArray()); + + var length = stackA.length; + while (length--) { + if (stackA[length] == a) { + return stackB[length] == b; + } + } + var size = 0; + result = true; + + // add `a` and `b` to the stack of traversed objects + stackA.push(a); + stackB.push(b); + + // recursively compare objects and arrays (susceptible to call stack limits) + if (isArr) { + length = a.length; + size = b.length; + + // compare lengths to determine if a deep comparison is necessary + result = size == a.length; + if (!result && !whereIndicator) { + return result; + } + // deep compare the contents, ignoring non-numeric properties + while (size--) { + var index = length, + value = b[size]; + + if (whereIndicator) { + while (index--) { + if ((result = isEqual(a[index], value, callback, thisArg, stackA, stackB))) { + break; + } + } + } else if (!(result = isEqual(a[size], value, callback, thisArg, stackA, stackB))) { + break; + } + } + return result; + } + // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys` + // which, in this case, is more costly + forIn(b, function(value, key, b) { + if (hasOwnProperty.call(b, key)) { + // count the number of properties. + size++; + // deep compare each property value. + return (result = hasOwnProperty.call(a, key) && isEqual(a[key], value, callback, thisArg, stackA, stackB)); + } + }); + + if (result && !whereIndicator) { + // ensure both objects have the same number of properties + forIn(a, function(value, key, a) { + if (hasOwnProperty.call(a, key)) { + // `size` will be `-1` if `a` has more properties than `b` + return (result = --size > -1); + } + }); + } + if (initedStack) { + releaseArray(stackA); + releaseArray(stackB); + } + return result; + } + + /** + * Checks if `value` is, or can be coerced to, a finite number. + * + * Note: This is not the same as native `isFinite`, which will return true for + * booleans and empty strings. See http://es5.github.com/#x15.1.2.5. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is finite, else `false`. + * @example + * + * _.isFinite(-101); + * // => true + * + * _.isFinite('10'); + * // => true + * + * _.isFinite(true); + * // => false + * + * _.isFinite(''); + * // => false + * + * _.isFinite(Infinity); + * // => false + */ + function isFinite(value) { + return nativeIsFinite(value) && !nativeIsNaN(parseFloat(value)); + } + + /** + * Checks if `value` is a function. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + */ + function isFunction(value) { + return typeof value == 'function'; + } + // fallback for older versions of Chrome and Safari + if (isFunction(/x/)) { + isFunction = function(value) { + return typeof value == 'function' && toString.call(value) == funcClass; + }; + } + + /** + * Checks if `value` is the language type of Object. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); + * // => false + */ + function isObject(value) { + // check if the value is the ECMAScript language type of Object + // http://es5.github.com/#x8 + // and avoid a V8 bug + // http://code.google.com/p/v8/issues/detail?id=2291 + return !!(value && objectTypes[typeof value]); + } + + /** + * Checks if `value` is `NaN`. + * + * Note: This is not the same as native `isNaN`, which will return `true` for + * `undefined` and other values. See http://es5.github.com/#x15.1.2.4. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is `NaN`, else `false`. + * @example + * + * _.isNaN(NaN); + * // => true + * + * _.isNaN(new Number(NaN)); + * // => true + * + * isNaN(undefined); + * // => true + * + * _.isNaN(undefined); + * // => false + */ + function isNaN(value) { + // `NaN` as a primitive is the only value that is not equal to itself + // (perform the [[Class]] check first to avoid errors with some host objects in IE) + return isNumber(value) && value != +value + } + + /** + * Checks if `value` is `null`. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is `null`, else `false`. + * @example + * + * _.isNull(null); + * // => true + * + * _.isNull(undefined); + * // => false + */ + function isNull(value) { + return value === null; + } + + /** + * Checks if `value` is a number. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is a number, else `false`. + * @example + * + * _.isNumber(8.4 * 5); + * // => true + */ + function isNumber(value) { + return typeof value == 'number' || toString.call(value) == numberClass; + } + + /** + * Checks if a given `value` is an object created by the `Object` constructor. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if `value` is a plain object, else `false`. + * @example + * + * function Stooge(name, age) { + * this.name = name; + * this.age = age; + * } + * + * _.isPlainObject(new Stooge('moe', 40)); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'name': 'moe', 'age': 40 }); + * // => true + */ + var isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) { + if (!(value && toString.call(value) == objectClass) || (!support.argsClass && isArguments(value))) { + return false; + } + var valueOf = value.valueOf, + objProto = typeof valueOf == 'function' && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto); + + return objProto + ? (value == objProto || getPrototypeOf(value) == objProto) + : shimIsPlainObject(value); + }; + + /** + * Checks if `value` is a regular expression. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is a regular expression, else `false`. + * @example + * + * _.isRegExp(/moe/); + * // => true + */ + function isRegExp(value) { + return !!(value && objectTypes[typeof value]) && toString.call(value) == regexpClass; + } + + /** + * Checks if `value` is a string. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is a string, else `false`. + * @example + * + * _.isString('moe'); + * // => true + */ + function isString(value) { + return typeof value == 'string' || toString.call(value) == stringClass; + } + + /** + * Checks if `value` is `undefined`. + * + * @static + * @memberOf _ + * @category Objects + * @param {Mixed} value The value to check. + * @returns {Boolean} Returns `true`, if the `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + */ + function isUndefined(value) { + return typeof value == 'undefined'; + } + + /** + * Recursively merges own enumerable properties of the source object(s), that + * don't resolve to `undefined`, into the destination object. Subsequent sources + * will overwrite property assignments of previous sources. If a `callback` function + * is passed, it will be executed to produce the merged values of the destination + * and source properties. If `callback` returns `undefined`, merging will be + * handled by the method instead. The `callback` is bound to `thisArg` and + * invoked with two arguments; (objectValue, sourceValue). + * + * @static + * @memberOf _ + * @category Objects + * @param {Object} object The destination object. + * @param {Object} [source1, source2, ...] The source objects. + * @param {Function} [callback] The function to customize merging properties. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @param- {Object} [deepIndicator] Indicates that `stackA` and `stackB` are + * arrays of traversed objects, instead of source objects. + * @param- {Array} [stackA=[]] Tracks traversed source objects. + * @param- {Array} [stackB=[]] Associates values with source counterparts. + * @returns {Object} Returns the destination object. + * @example + * + * var names = { + * 'stooges': [ + * { 'name': 'moe' }, + * { 'name': 'larry' } + * ] + * }; + * + * var ages = { + * 'stooges': [ + * { 'age': 40 }, + * { 'age': 50 } + * ] + * }; + * + * _.merge(names, ages); + * // => { 'stooges': [{ 'name': 'moe', 'age': 40 }, { 'name': 'larry', 'age': 50 }] } + * + * var food = { + * 'fruits': ['apple'], + * 'vegetables': ['beet'] + * }; + * + * var otherFood = { + * 'fruits': ['banana'], + * 'vegetables': ['carrot'] + * }; + * + * _.merge(food, otherFood, function(a, b) { + * return _.isArray(a) ? a.concat(b) : undefined; + * }); + * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot] } + */ + function merge(object, source, deepIndicator) { + var args = arguments, + index = 0, + length = 2; + + if (!isObject(object)) { + return object; + } + if (deepIndicator === indicatorObject) { + var callback = args[3], + stackA = args[4], + stackB = args[5]; + } else { + var initedStack = true; + stackA = getArray(); + stackB = getArray(); + + // allows working with `_.reduce` and `_.reduceRight` without + // using their `callback` arguments, `index|key` and `collection` + if (typeof deepIndicator != 'number') { + length = args.length; + } + if (length > 3 && typeof args[length - 2] == 'function') { + callback = lodash.createCallback(args[--length - 1], args[length--], 2); + } else if (length > 2 && typeof args[length - 1] == 'function') { + callback = args[--length]; + } + } + while (++index < length) { + (isArray(args[index]) ? forEach : forOwn)(args[index], function(source, key) { + var found, + isArr, + result = source, + value = object[key]; + + if (source && ((isArr = isArray(source)) || isPlainObject(source))) { + // avoid merging previously merged cyclic sources + var stackLength = stackA.length; + while (stackLength--) { + if ((found = stackA[stackLength] == source)) { + value = stackB[stackLength]; + break; + } + } + if (!found) { + var isShallow; + if (callback) { + result = callback(value, source); + if ((isShallow = typeof result != 'undefined')) { + value = result; + } + } + if (!isShallow) { + value = isArr + ? (isArray(value) ? value : []) + : (isPlainObject(value) ? value : {}); + } + // add `source` and associated `value` to the stack of traversed objects + stackA.push(source); + stackB.push(value); + + // recursively merge objects and arrays (susceptible to call stack limits) + if (!isShallow) { + value = merge(value, source, indicatorObject, callback, stackA, stackB); + } + } + } + else { + if (callback) { + result = callback(value, source); + if (typeof result == 'undefined') { + result = source; + } + } + if (typeof result != 'undefined') { + value = result; + } + } + object[key] = value; + }); + } + + if (initedStack) { + releaseArray(stackA); + releaseArray(stackB); + } + return object; + } + + /** + * Creates a shallow clone of `object` excluding the specified properties. + * Property names may be specified as individual arguments or as arrays of + * property names. If a `callback` function is passed, it will be executed + * for each property in the `object`, omitting the properties `callback` + * returns truthy for. The `callback` is bound to `thisArg` and invoked + * with three arguments; (value, key, object). + * + * @static + * @memberOf _ + * @category Objects + * @param {Object} object The source object. + * @param {Function|String} callback|[prop1, prop2, ...] The properties to omit + * or the function called per iteration. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Object} Returns an object without the omitted properties. + * @example + * + * _.omit({ 'name': 'moe', 'age': 40 }, 'age'); + * // => { 'name': 'moe' } + * + * _.omit({ 'name': 'moe', 'age': 40 }, function(value) { + * return typeof value == 'number'; + * }); + * // => { 'name': 'moe' } + */ + function omit(object, callback, thisArg) { + var indexOf = getIndexOf(), + isFunc = typeof callback == 'function', + result = {}; + + if (isFunc) { + callback = lodash.createCallback(callback, thisArg); + } else { + var props = concat.apply(arrayRef, nativeSlice.call(arguments, 1)); + } + forIn(object, function(value, key, object) { + if (isFunc + ? !callback(value, key, object) + : indexOf(props, key) < 0 + ) { + result[key] = value; + } + }); + return result; + } + + /** + * Creates a two dimensional array of the given object's key-value pairs, + * i.e. `[[key1, value1], [key2, value2]]`. + * + * @static + * @memberOf _ + * @category Objects + * @param {Object} object The object to inspect. + * @returns {Array} Returns new array of key-value pairs. + * @example + * + * _.pairs({ 'moe': 30, 'larry': 40 }); + * // => [['moe', 30], ['larry', 40]] (order is not guaranteed) + */ + function pairs(object) { + var index = -1, + props = keys(object), + length = props.length, + result = Array(length); + + while (++index < length) { + var key = props[index]; + result[index] = [key, object[key]]; + } + return result; + } + + /** + * Creates a shallow clone of `object` composed of the specified properties. + * Property names may be specified as individual arguments or as arrays of property + * names. If `callback` is passed, it will be executed for each property in the + * `object`, picking the properties `callback` returns truthy for. The `callback` + * is bound to `thisArg` and invoked with three arguments; (value, key, object). + * + * @static + * @memberOf _ + * @category Objects + * @param {Object} object The source object. + * @param {Array|Function|String} callback|[prop1, prop2, ...] The function called + * per iteration or properties to pick, either as individual arguments or arrays. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Object} Returns an object composed of the picked properties. + * @example + * + * _.pick({ 'name': 'moe', '_userid': 'moe1' }, 'name'); + * // => { 'name': 'moe' } + * + * _.pick({ 'name': 'moe', '_userid': 'moe1' }, function(value, key) { + * return key.charAt(0) != '_'; + * }); + * // => { 'name': 'moe' } + */ + function pick(object, callback, thisArg) { + var result = {}; + if (typeof callback != 'function') { + var index = -1, + props = concat.apply(arrayRef, nativeSlice.call(arguments, 1)), + length = isObject(object) ? props.length : 0; + + while (++index < length) { + var key = props[index]; + if (key in object) { + result[key] = object[key]; + } + } + } else { + callback = lodash.createCallback(callback, thisArg); + forIn(object, function(value, key, object) { + if (callback(value, key, object)) { + result[key] = value; + } + }); + } + return result; + } + + /** + * An alternative to `_.reduce`, this method transforms an `object` to a new + * `accumulator` object which is the result of running each of its elements + * through the `callback`, with each `callback` execution potentially mutating + * the `accumulator` object. The `callback` is bound to `thisArg` and invoked + * with four arguments; (accumulator, value, key, object). Callbacks may exit + * iteration early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @category Objects + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [callback=identity] The function called per iteration. + * @param {Mixed} [accumulator] The custom accumulator value. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Mixed} Returns the accumulated value. + * @example + * + * var squares = _.transform([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], function(result, num) { + * num *= num; + * if (num % 2) { + * return result.push(num) < 3; + * } + * }); + * // => [1, 9, 25] + * + * var mapped = _.transform({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) { + * result[key] = num * 3; + * }); + * // => { 'a': 3, 'b': 6, 'c': 9 } + */ + function transform(object, callback, accumulator, thisArg) { + var isArr = isArray(object); + callback = lodash.createCallback(callback, thisArg, 4); + + if (accumulator == null) { + if (isArr) { + accumulator = []; + } else { + var ctor = object && object.constructor, + proto = ctor && ctor.prototype; + + accumulator = createObject(proto); + } + } + (isArr ? basicEach : forOwn)(object, function(value, index, object) { + return callback(accumulator, value, index, object); + }); + return accumulator; + } + + /** + * Creates an array composed of the own enumerable property values of `object`. + * + * @static + * @memberOf _ + * @category Objects + * @param {Object} object The object to inspect. + * @returns {Array} Returns a new array of property values. + * @example + * + * _.values({ 'one': 1, 'two': 2, 'three': 3 }); + * // => [1, 2, 3] (order is not guaranteed) + */ + function values(object) { + var index = -1, + props = keys(object), + length = props.length, + result = Array(length); + + while (++index < length) { + result[index] = object[props[index]]; + } + return result; + } + + /*--------------------------------------------------------------------------*/ + + /** + * Creates an array of elements from the specified indexes, or keys, of the + * `collection`. Indexes may be specified as individual arguments or as arrays + * of indexes. + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Array|Number|String} [index1, index2, ...] The indexes of + * `collection` to retrieve, either as individual arguments or arrays. + * @returns {Array} Returns a new array of elements corresponding to the + * provided indexes. + * @example + * + * _.at(['a', 'b', 'c', 'd', 'e'], [0, 2, 4]); + * // => ['a', 'c', 'e'] + * + * _.at(['moe', 'larry', 'curly'], 0, 2); + * // => ['moe', 'curly'] + */ + function at(collection) { + var index = -1, + props = concat.apply(arrayRef, nativeSlice.call(arguments, 1)), + length = props.length, + result = Array(length); + + if (support.unindexedChars && isString(collection)) { + collection = collection.split(''); + } + while(++index < length) { + result[index] = collection[props[index]]; + } + return result; + } + + /** + * Checks if a given `target` element is present in a `collection` using strict + * equality for comparisons, i.e. `===`. If `fromIndex` is negative, it is used + * as the offset from the end of the collection. + * + * @static + * @memberOf _ + * @alias include + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Mixed} target The value to check for. + * @param {Number} [fromIndex=0] The index to search from. + * @returns {Boolean} Returns `true` if the `target` element is found, else `false`. + * @example + * + * _.contains([1, 2, 3], 1); + * // => true + * + * _.contains([1, 2, 3], 1, 2); + * // => false + * + * _.contains({ 'name': 'moe', 'age': 40 }, 'moe'); + * // => true + * + * _.contains('curly', 'ur'); + * // => true + */ + function contains(collection, target, fromIndex) { + var index = -1, + indexOf = getIndexOf(), + length = collection ? collection.length : 0, + result = false; + + fromIndex = (fromIndex < 0 ? nativeMax(0, length + fromIndex) : fromIndex) || 0; + if (length && typeof length == 'number') { + result = (isString(collection) + ? collection.indexOf(target, fromIndex) + : indexOf(collection, target, fromIndex) + ) > -1; + } else { + basicEach(collection, function(value) { + if (++index >= fromIndex) { + return !(result = value === target); + } + }); + } + return result; + } + + /** + * Creates an object composed of keys returned from running each element of the + * `collection` through the given `callback`. The corresponding value of each key + * is the number of times the key was returned by the `callback`. The `callback` + * is bound to `thisArg` and invoked with three arguments; (value, index|key, collection). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.countBy([4.3, 6.1, 6.4], function(num) { return Math.floor(num); }); + * // => { '4': 1, '6': 2 } + * + * _.countBy([4.3, 6.1, 6.4], function(num) { return this.floor(num); }, Math); + * // => { '4': 1, '6': 2 } + * + * _.countBy(['one', 'two', 'three'], 'length'); + * // => { '3': 2, '5': 1 } + */ + function countBy(collection, callback, thisArg) { + var result = {}; + callback = lodash.createCallback(callback, thisArg); + + forEach(collection, function(value, key, collection) { + key = String(callback(value, key, collection)); + (hasOwnProperty.call(result, key) ? result[key]++ : result[key] = 1); + }); + return result; + } + + /** + * Checks if the `callback` returns a truthy value for **all** elements of a + * `collection`. The `callback` is bound to `thisArg` and invoked with three + * arguments; (value, index|key, collection). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @alias all + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Boolean} Returns `true` if all elements pass the callback check, + * else `false`. + * @example + * + * _.every([true, 1, null, 'yes'], Boolean); + * // => false + * + * var stooges = [ + * { 'name': 'moe', 'age': 40 }, + * { 'name': 'larry', 'age': 50 } + * ]; + * + * // using "_.pluck" callback shorthand + * _.every(stooges, 'age'); + * // => true + * + * // using "_.where" callback shorthand + * _.every(stooges, { 'age': 50 }); + * // => false + */ + function every(collection, callback, thisArg) { + var result = true; + callback = lodash.createCallback(callback, thisArg); + + if (isArray(collection)) { + var index = -1, + length = collection.length; + + while (++index < length) { + if (!(result = !!callback(collection[index], index, collection))) { + break; + } + } + } else { + basicEach(collection, function(value, index, collection) { + return (result = !!callback(value, index, collection)); + }); + } + return result; + } + + /** + * Examines each element in a `collection`, returning an array of all elements + * the `callback` returns truthy for. The `callback` is bound to `thisArg` and + * invoked with three arguments; (value, index|key, collection). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @alias select + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Array} Returns a new array of elements that passed the callback check. + * @example + * + * var evens = _.filter([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); + * // => [2, 4, 6] + * + * var food = [ + * { 'name': 'apple', 'organic': false, 'type': 'fruit' }, + * { 'name': 'carrot', 'organic': true, 'type': 'vegetable' } + * ]; + * + * // using "_.pluck" callback shorthand + * _.filter(food, 'organic'); + * // => [{ 'name': 'carrot', 'organic': true, 'type': 'vegetable' }] + * + * // using "_.where" callback shorthand + * _.filter(food, { 'type': 'fruit' }); + * // => [{ 'name': 'apple', 'organic': false, 'type': 'fruit' }] + */ + function filter(collection, callback, thisArg) { + var result = []; + callback = lodash.createCallback(callback, thisArg); + + if (isArray(collection)) { + var index = -1, + length = collection.length; + + while (++index < length) { + var value = collection[index]; + if (callback(value, index, collection)) { + result.push(value); + } + } + } else { + basicEach(collection, function(value, index, collection) { + if (callback(value, index, collection)) { + result.push(value); + } + }); + } + return result; + } + + /** + * Examines each element in a `collection`, returning the first that the `callback` + * returns truthy for. The `callback` is bound to `thisArg` and invoked with three + * arguments; (value, index|key, collection). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @alias detect, findWhere + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Mixed} Returns the found element, else `undefined`. + * @example + * + * _.find([1, 2, 3, 4], function(num) { + * return num % 2 == 0; + * }); + * // => 2 + * + * var food = [ + * { 'name': 'apple', 'organic': false, 'type': 'fruit' }, + * { 'name': 'banana', 'organic': true, 'type': 'fruit' }, + * { 'name': 'beet', 'organic': false, 'type': 'vegetable' } + * ]; + * + * // using "_.where" callback shorthand + * _.find(food, { 'type': 'vegetable' }); + * // => { 'name': 'beet', 'organic': false, 'type': 'vegetable' } + * + * // using "_.pluck" callback shorthand + * _.find(food, 'organic'); + * // => { 'name': 'banana', 'organic': true, 'type': 'fruit' } + */ + function find(collection, callback, thisArg) { + callback = lodash.createCallback(callback, thisArg); + + if (isArray(collection)) { + var index = -1, + length = collection.length; + + while (++index < length) { + var value = collection[index]; + if (callback(value, index, collection)) { + return value; + } + } + } else { + var result; + basicEach(collection, function(value, index, collection) { + if (callback(value, index, collection)) { + result = value; + return false; + } + }); + return result; + } + } + + /** + * Iterates over a `collection`, executing the `callback` for each element in + * the `collection`. The `callback` is bound to `thisArg` and invoked with three + * arguments; (value, index|key, collection). Callbacks may exit iteration early + * by explicitly returning `false`. + * + * @static + * @memberOf _ + * @alias each + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function} [callback=identity] The function called per iteration. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Array|Object|String} Returns `collection`. + * @example + * + * _([1, 2, 3]).forEach(alert).join(','); + * // => alerts each number and returns '1,2,3' + * + * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, alert); + * // => alerts each number value (order is not guaranteed) + */ + function forEach(collection, callback, thisArg) { + if (callback && typeof thisArg == 'undefined' && isArray(collection)) { + var index = -1, + length = collection.length; + + while (++index < length) { + if (callback(collection[index], index, collection) === false) { + break; + } + } + } else { + basicEach(collection, callback, thisArg); + } + return collection; + } + + /** + * Creates an object composed of keys returned from running each element of the + * `collection` through the `callback`. The corresponding value of each key is + * an array of elements passed to `callback` that returned the key. The `callback` + * is bound to `thisArg` and invoked with three arguments; (value, index|key, collection). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false` + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.groupBy([4.2, 6.1, 6.4], function(num) { return Math.floor(num); }); + * // => { '4': [4.2], '6': [6.1, 6.4] } + * + * _.groupBy([4.2, 6.1, 6.4], function(num) { return this.floor(num); }, Math); + * // => { '4': [4.2], '6': [6.1, 6.4] } + * + * // using "_.pluck" callback shorthand + * _.groupBy(['one', 'two', 'three'], 'length'); + * // => { '3': ['one', 'two'], '5': ['three'] } + */ + function groupBy(collection, callback, thisArg) { + var result = {}; + callback = lodash.createCallback(callback, thisArg); + + forEach(collection, function(value, key, collection) { + key = String(callback(value, key, collection)); + (hasOwnProperty.call(result, key) ? result[key] : result[key] = []).push(value); + }); + return result; + } + + /** + * Invokes the method named by `methodName` on each element in the `collection`, + * returning an array of the results of each invoked method. Additional arguments + * will be passed to each invoked method. If `methodName` is a function, it will + * be invoked for, and `this` bound to, each element in the `collection`. + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function|String} methodName The name of the method to invoke or + * the function invoked per iteration. + * @param {Mixed} [arg1, arg2, ...] Arguments to invoke the method with. + * @returns {Array} Returns a new array of the results of each invoked method. + * @example + * + * _.invoke([[5, 1, 7], [3, 2, 1]], 'sort'); + * // => [[1, 5, 7], [1, 2, 3]] + * + * _.invoke([123, 456], String.prototype.split, ''); + * // => [['1', '2', '3'], ['4', '5', '6']] + */ + function invoke(collection, methodName) { + var args = nativeSlice.call(arguments, 2), + index = -1, + isFunc = typeof methodName == 'function', + length = collection ? collection.length : 0, + result = Array(typeof length == 'number' ? length : 0); + + forEach(collection, function(value) { + result[++index] = (isFunc ? methodName : value[methodName]).apply(value, args); + }); + return result; + } + + /** + * Creates an array of values by running each element in the `collection` + * through the `callback`. The `callback` is bound to `thisArg` and invoked with + * three arguments; (value, index|key, collection). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @alias collect + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Array} Returns a new array of the results of each `callback` execution. + * @example + * + * _.map([1, 2, 3], function(num) { return num * 3; }); + * // => [3, 6, 9] + * + * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; }); + * // => [3, 6, 9] (order is not guaranteed) + * + * var stooges = [ + * { 'name': 'moe', 'age': 40 }, + * { 'name': 'larry', 'age': 50 } + * ]; + * + * // using "_.pluck" callback shorthand + * _.map(stooges, 'name'); + * // => ['moe', 'larry'] + */ + function map(collection, callback, thisArg) { + var index = -1, + length = collection ? collection.length : 0, + result = Array(typeof length == 'number' ? length : 0); + + callback = lodash.createCallback(callback, thisArg); + if (isArray(collection)) { + while (++index < length) { + result[index] = callback(collection[index], index, collection); + } + } else { + basicEach(collection, function(value, key, collection) { + result[++index] = callback(value, key, collection); + }); + } + return result; + } + + /** + * Retrieves the maximum value of an `array`. If `callback` is passed, + * it will be executed for each value in the `array` to generate the + * criterion by which the value is ranked. The `callback` is bound to + * `thisArg` and invoked with three arguments; (value, index, collection). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Mixed} Returns the maximum value. + * @example + * + * _.max([4, 2, 8, 6]); + * // => 8 + * + * var stooges = [ + * { 'name': 'moe', 'age': 40 }, + * { 'name': 'larry', 'age': 50 } + * ]; + * + * _.max(stooges, function(stooge) { return stooge.age; }); + * // => { 'name': 'larry', 'age': 50 }; + * + * // using "_.pluck" callback shorthand + * _.max(stooges, 'age'); + * // => { 'name': 'larry', 'age': 50 }; + */ + function max(collection, callback, thisArg) { + var computed = -Infinity, + result = computed; + + if (!callback && isArray(collection)) { + var index = -1, + length = collection.length; + + while (++index < length) { + var value = collection[index]; + if (value > result) { + result = value; + } + } + } else { + callback = (!callback && isString(collection)) + ? charAtCallback + : lodash.createCallback(callback, thisArg); + + basicEach(collection, function(value, index, collection) { + var current = callback(value, index, collection); + if (current > computed) { + computed = current; + result = value; + } + }); + } + return result; + } + + /** + * Retrieves the minimum value of an `array`. If `callback` is passed, + * it will be executed for each value in the `array` to generate the + * criterion by which the value is ranked. The `callback` is bound to `thisArg` + * and invoked with three arguments; (value, index, collection). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Mixed} Returns the minimum value. + * @example + * + * _.min([4, 2, 8, 6]); + * // => 2 + * + * var stooges = [ + * { 'name': 'moe', 'age': 40 }, + * { 'name': 'larry', 'age': 50 } + * ]; + * + * _.min(stooges, function(stooge) { return stooge.age; }); + * // => { 'name': 'moe', 'age': 40 }; + * + * // using "_.pluck" callback shorthand + * _.min(stooges, 'age'); + * // => { 'name': 'moe', 'age': 40 }; + */ + function min(collection, callback, thisArg) { + var computed = Infinity, + result = computed; + + if (!callback && isArray(collection)) { + var index = -1, + length = collection.length; + + while (++index < length) { + var value = collection[index]; + if (value < result) { + result = value; + } + } + } else { + callback = (!callback && isString(collection)) + ? charAtCallback + : lodash.createCallback(callback, thisArg); + + basicEach(collection, function(value, index, collection) { + var current = callback(value, index, collection); + if (current < computed) { + computed = current; + result = value; + } + }); + } + return result; + } + + /** + * Retrieves the value of a specified property from all elements in the `collection`. + * + * @static + * @memberOf _ + * @type Function + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {String} property The property to pluck. + * @returns {Array} Returns a new array of property values. + * @example + * + * var stooges = [ + * { 'name': 'moe', 'age': 40 }, + * { 'name': 'larry', 'age': 50 } + * ]; + * + * _.pluck(stooges, 'name'); + * // => ['moe', 'larry'] + */ + var pluck = map; + + /** + * Reduces a `collection` to a value which is the accumulated result of running + * each element in the `collection` through the `callback`, where each successive + * `callback` execution consumes the return value of the previous execution. + * If `accumulator` is not passed, the first element of the `collection` will be + * used as the initial `accumulator` value. The `callback` is bound to `thisArg` + * and invoked with four arguments; (accumulator, value, index|key, collection). + * + * @static + * @memberOf _ + * @alias foldl, inject + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function} [callback=identity] The function called per iteration. + * @param {Mixed} [accumulator] Initial value of the accumulator. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Mixed} Returns the accumulated value. + * @example + * + * var sum = _.reduce([1, 2, 3], function(sum, num) { + * return sum + num; + * }); + * // => 6 + * + * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) { + * result[key] = num * 3; + * return result; + * }, {}); + * // => { 'a': 3, 'b': 6, 'c': 9 } + */ + function reduce(collection, callback, accumulator, thisArg) { + var noaccum = arguments.length < 3; + callback = lodash.createCallback(callback, thisArg, 4); + + if (isArray(collection)) { + var index = -1, + length = collection.length; + + if (noaccum) { + accumulator = collection[++index]; + } + while (++index < length) { + accumulator = callback(accumulator, collection[index], index, collection); + } + } else { + basicEach(collection, function(value, index, collection) { + accumulator = noaccum + ? (noaccum = false, value) + : callback(accumulator, value, index, collection) + }); + } + return accumulator; + } + + /** + * This method is similar to `_.reduce`, except that it iterates over a + * `collection` from right to left. + * + * @static + * @memberOf _ + * @alias foldr + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function} [callback=identity] The function called per iteration. + * @param {Mixed} [accumulator] Initial value of the accumulator. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Mixed} Returns the accumulated value. + * @example + * + * var list = [[0, 1], [2, 3], [4, 5]]; + * var flat = _.reduceRight(list, function(a, b) { return a.concat(b); }, []); + * // => [4, 5, 2, 3, 0, 1] + */ + function reduceRight(collection, callback, accumulator, thisArg) { + var iterable = collection, + length = collection ? collection.length : 0, + noaccum = arguments.length < 3; + + if (typeof length != 'number') { + var props = keys(collection); + length = props.length; + } else if (support.unindexedChars && isString(collection)) { + iterable = collection.split(''); + } + callback = lodash.createCallback(callback, thisArg, 4); + forEach(collection, function(value, index, collection) { + index = props ? props[--length] : --length; + accumulator = noaccum + ? (noaccum = false, iterable[index]) + : callback(accumulator, iterable[index], index, collection); + }); + return accumulator; + } + + /** + * The opposite of `_.filter`, this method returns the elements of a + * `collection` that `callback` does **not** return truthy for. + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Array} Returns a new array of elements that did **not** pass the + * callback check. + * @example + * + * var odds = _.reject([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); + * // => [1, 3, 5] + * + * var food = [ + * { 'name': 'apple', 'organic': false, 'type': 'fruit' }, + * { 'name': 'carrot', 'organic': true, 'type': 'vegetable' } + * ]; + * + * // using "_.pluck" callback shorthand + * _.reject(food, 'organic'); + * // => [{ 'name': 'apple', 'organic': false, 'type': 'fruit' }] + * + * // using "_.where" callback shorthand + * _.reject(food, { 'type': 'fruit' }); + * // => [{ 'name': 'carrot', 'organic': true, 'type': 'vegetable' }] + */ + function reject(collection, callback, thisArg) { + callback = lodash.createCallback(callback, thisArg); + return filter(collection, function(value, index, collection) { + return !callback(value, index, collection); + }); + } + + /** + * Creates an array of shuffled `array` values, using a version of the + * Fisher-Yates shuffle. See http://en.wikipedia.org/wiki/Fisher-Yates_shuffle. + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|String} collection The collection to shuffle. + * @returns {Array} Returns a new shuffled collection. + * @example + * + * _.shuffle([1, 2, 3, 4, 5, 6]); + * // => [4, 1, 6, 3, 5, 2] + */ + function shuffle(collection) { + var index = -1, + length = collection ? collection.length : 0, + result = Array(typeof length == 'number' ? length : 0); + + forEach(collection, function(value) { + var rand = floor(nativeRandom() * (++index + 1)); + result[index] = result[rand]; + result[rand] = value; + }); + return result; + } + + /** + * Gets the size of the `collection` by returning `collection.length` for arrays + * and array-like objects or the number of own enumerable properties for objects. + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|String} collection The collection to inspect. + * @returns {Number} Returns `collection.length` or number of own enumerable properties. + * @example + * + * _.size([1, 2]); + * // => 2 + * + * _.size({ 'one': 1, 'two': 2, 'three': 3 }); + * // => 3 + * + * _.size('curly'); + * // => 5 + */ + function size(collection) { + var length = collection ? collection.length : 0; + return typeof length == 'number' ? length : keys(collection).length; + } + + /** + * Checks if the `callback` returns a truthy value for **any** element of a + * `collection`. The function returns as soon as it finds passing value, and + * does not iterate over the entire `collection`. The `callback` is bound to + * `thisArg` and invoked with three arguments; (value, index|key, collection). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @alias any + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Boolean} Returns `true` if any element passes the callback check, + * else `false`. + * @example + * + * _.some([null, 0, 'yes', false], Boolean); + * // => true + * + * var food = [ + * { 'name': 'apple', 'organic': false, 'type': 'fruit' }, + * { 'name': 'carrot', 'organic': true, 'type': 'vegetable' } + * ]; + * + * // using "_.pluck" callback shorthand + * _.some(food, 'organic'); + * // => true + * + * // using "_.where" callback shorthand + * _.some(food, { 'type': 'meat' }); + * // => false + */ + function some(collection, callback, thisArg) { + var result; + callback = lodash.createCallback(callback, thisArg); + + if (isArray(collection)) { + var index = -1, + length = collection.length; + + while (++index < length) { + if ((result = callback(collection[index], index, collection))) { + break; + } + } + } else { + basicEach(collection, function(value, index, collection) { + return !(result = callback(value, index, collection)); + }); + } + return !!result; + } + + /** + * Creates an array of elements, sorted in ascending order by the results of + * running each element in the `collection` through the `callback`. This method + * performs a stable sort, that is, it will preserve the original sort order of + * equal elements. The `callback` is bound to `thisArg` and invoked with three + * arguments; (value, index|key, collection). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Array} Returns a new array of sorted elements. + * @example + * + * _.sortBy([1, 2, 3], function(num) { return Math.sin(num); }); + * // => [3, 1, 2] + * + * _.sortBy([1, 2, 3], function(num) { return this.sin(num); }, Math); + * // => [3, 1, 2] + * + * // using "_.pluck" callback shorthand + * _.sortBy(['banana', 'strawberry', 'apple'], 'length'); + * // => ['apple', 'banana', 'strawberry'] + */ + function sortBy(collection, callback, thisArg) { + var index = -1, + length = collection ? collection.length : 0, + result = Array(typeof length == 'number' ? length : 0); + + callback = lodash.createCallback(callback, thisArg); + forEach(collection, function(value, key, collection) { + var object = result[++index] = getObject(); + object.criteria = callback(value, key, collection); + object.index = index; + object.value = value; + }); + + length = result.length; + result.sort(compareAscending); + while (length--) { + var object = result[length]; + result[length] = object.value; + releaseObject(object); + } + return result; + } + + /** + * Converts the `collection` to an array. + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|String} collection The collection to convert. + * @returns {Array} Returns the new converted array. + * @example + * + * (function() { return _.toArray(arguments).slice(1); })(1, 2, 3, 4); + * // => [2, 3, 4] + */ + function toArray(collection) { + if (collection && typeof collection.length == 'number') { + return (support.unindexedChars && isString(collection)) + ? collection.split('') + : slice(collection); + } + return values(collection); + } + + /** + * Examines each element in a `collection`, returning an array of all elements + * that have the given `properties`. When checking `properties`, this method + * performs a deep comparison between values to determine if they are equivalent + * to each other. + * + * @static + * @memberOf _ + * @type Function + * @category Collections + * @param {Array|Object|String} collection The collection to iterate over. + * @param {Object} properties The object of property values to filter by. + * @returns {Array} Returns a new array of elements that have the given `properties`. + * @example + * + * var stooges = [ + * { 'name': 'moe', 'age': 40 }, + * { 'name': 'larry', 'age': 50 } + * ]; + * + * _.where(stooges, { 'age': 40 }); + * // => [{ 'name': 'moe', 'age': 40 }] + */ + var where = filter; + + /*--------------------------------------------------------------------------*/ + + /** + * Creates an array with all falsey values of `array` removed. The values + * `false`, `null`, `0`, `""`, `undefined` and `NaN` are all falsey. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} array The array to compact. + * @returns {Array} Returns a new filtered array. + * @example + * + * _.compact([0, 1, false, 2, '', 3]); + * // => [1, 2, 3] + */ + function compact(array) { + var index = -1, + length = array ? array.length : 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (value) { + result.push(value); + } + } + return result; + } + + /** + * Creates an array of `array` elements not present in the other arrays + * using strict equality for comparisons, i.e. `===`. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} array The array to process. + * @param {Array} [array1, array2, ...] Arrays to check. + * @returns {Array} Returns a new array of `array` elements not present in the + * other arrays. + * @example + * + * _.difference([1, 2, 3, 4, 5], [5, 2, 10]); + * // => [1, 3, 4] + */ + function difference(array) { + var index = -1, + indexOf = getIndexOf(), + length = array ? array.length : 0, + seen = concat.apply(arrayRef, nativeSlice.call(arguments, 1)), + result = []; + + var isLarge = length >= largeArraySize && indexOf === basicIndexOf; + + if (isLarge) { + var cache = createCache(seen); + if (cache) { + indexOf = cacheIndexOf; + seen = cache; + } else { + isLarge = false; + } + } + while (++index < length) { + var value = array[index]; + if (indexOf(seen, value) < 0) { + result.push(value); + } + } + if (isLarge) { + releaseObject(seen); + } + return result; + } + + /** + * This method is similar to `_.find`, except that it returns the index of + * the element that passes the callback check, instead of the element itself. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} array The array to search. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Mixed} Returns the index of the found element, else `-1`. + * @example + * + * _.findIndex(['apple', 'banana', 'beet'], function(food) { + * return /^b/.test(food); + * }); + * // => 1 + */ + function findIndex(array, callback, thisArg) { + var index = -1, + length = array ? array.length : 0; + + callback = lodash.createCallback(callback, thisArg); + while (++index < length) { + if (callback(array[index], index, array)) { + return index; + } + } + return -1; + } + + /** + * Gets the first element of the `array`. If a number `n` is passed, the first + * `n` elements of the `array` are returned. If a `callback` function is passed, + * elements at the beginning of the array are returned as long as the `callback` + * returns truthy. The `callback` is bound to `thisArg` and invoked with three + * arguments; (value, index, array). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @alias head, take + * @category Arrays + * @param {Array} array The array to query. + * @param {Function|Object|Number|String} [callback|n] The function called + * per element or the number of elements to return. If a property name or + * object is passed, it will be used to create a "_.pluck" or "_.where" + * style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Mixed} Returns the first element(s) of `array`. + * @example + * + * _.first([1, 2, 3]); + * // => 1 + * + * _.first([1, 2, 3], 2); + * // => [1, 2] + * + * _.first([1, 2, 3], function(num) { + * return num < 3; + * }); + * // => [1, 2] + * + * var food = [ + * { 'name': 'banana', 'organic': true }, + * { 'name': 'beet', 'organic': false }, + * ]; + * + * // using "_.pluck" callback shorthand + * _.first(food, 'organic'); + * // => [{ 'name': 'banana', 'organic': true }] + * + * var food = [ + * { 'name': 'apple', 'type': 'fruit' }, + * { 'name': 'banana', 'type': 'fruit' }, + * { 'name': 'beet', 'type': 'vegetable' } + * ]; + * + * // using "_.where" callback shorthand + * _.first(food, { 'type': 'fruit' }); + * // => [{ 'name': 'apple', 'type': 'fruit' }, { 'name': 'banana', 'type': 'fruit' }] + */ + function first(array, callback, thisArg) { + if (array) { + var n = 0, + length = array.length; + + if (typeof callback != 'number' && callback != null) { + var index = -1; + callback = lodash.createCallback(callback, thisArg); + while (++index < length && callback(array[index], index, array)) { + n++; + } + } else { + n = callback; + if (n == null || thisArg) { + return array[0]; + } + } + return slice(array, 0, nativeMin(nativeMax(0, n), length)); + } + } + + /** + * Flattens a nested array (the nesting can be to any depth). If `isShallow` + * is truthy, `array` will only be flattened a single level. If `callback` + * is passed, each element of `array` is passed through a `callback` before + * flattening. The `callback` is bound to `thisArg` and invoked with three + * arguments; (value, index, array). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} array The array to flatten. + * @param {Boolean} [isShallow=false] A flag to indicate only flattening a single level. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Array} Returns a new flattened array. + * @example + * + * _.flatten([1, [2], [3, [[4]]]]); + * // => [1, 2, 3, 4]; + * + * _.flatten([1, [2], [3, [[4]]]], true); + * // => [1, 2, 3, [[4]]]; + * + * var stooges = [ + * { 'name': 'curly', 'quotes': ['Oh, a wise guy, eh?', 'Poifect!'] }, + * { 'name': 'moe', 'quotes': ['Spread out!', 'You knucklehead!'] } + * ]; + * + * // using "_.pluck" callback shorthand + * _.flatten(stooges, 'quotes'); + * // => ['Oh, a wise guy, eh?', 'Poifect!', 'Spread out!', 'You knucklehead!'] + */ + var flatten = overloadWrapper(function flatten(array, isShallow, callback) { + var index = -1, + length = array ? array.length : 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (callback) { + value = callback(value, index, array); + } + // recursively flatten arrays (susceptible to call stack limits) + if (isArray(value)) { + push.apply(result, isShallow ? value : flatten(value)); + } else { + result.push(value); + } + } + return result; + }); + + /** + * Gets the index at which the first occurrence of `value` is found using + * strict equality for comparisons, i.e. `===`. If the `array` is already + * sorted, passing `true` for `fromIndex` will run a faster binary search. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} array The array to search. + * @param {Mixed} value The value to search for. + * @param {Boolean|Number} [fromIndex=0] The index to search from or `true` to + * perform a binary search on a sorted `array`. + * @returns {Number} Returns the index of the matched value or `-1`. + * @example + * + * _.indexOf([1, 2, 3, 1, 2, 3], 2); + * // => 1 + * + * _.indexOf([1, 2, 3, 1, 2, 3], 2, 3); + * // => 4 + * + * _.indexOf([1, 1, 2, 2, 3, 3], 2, true); + * // => 2 + */ + function indexOf(array, value, fromIndex) { + if (typeof fromIndex == 'number') { + var length = array ? array.length : 0; + fromIndex = (fromIndex < 0 ? nativeMax(0, length + fromIndex) : fromIndex || 0); + } else if (fromIndex) { + var index = sortedIndex(array, value); + return array[index] === value ? index : -1; + } + return array ? basicIndexOf(array, value, fromIndex) : -1; + } + + /** + * Gets all but the last element of `array`. If a number `n` is passed, the + * last `n` elements are excluded from the result. If a `callback` function + * is passed, elements at the end of the array are excluded from the result + * as long as the `callback` returns truthy. The `callback` is bound to + * `thisArg` and invoked with three arguments; (value, index, array). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} array The array to query. + * @param {Function|Object|Number|String} [callback|n=1] The function called + * per element or the number of elements to exclude. If a property name or + * object is passed, it will be used to create a "_.pluck" or "_.where" + * style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Array} Returns a slice of `array`. + * @example + * + * _.initial([1, 2, 3]); + * // => [1, 2] + * + * _.initial([1, 2, 3], 2); + * // => [1] + * + * _.initial([1, 2, 3], function(num) { + * return num > 1; + * }); + * // => [1] + * + * var food = [ + * { 'name': 'beet', 'organic': false }, + * { 'name': 'carrot', 'organic': true } + * ]; + * + * // using "_.pluck" callback shorthand + * _.initial(food, 'organic'); + * // => [{ 'name': 'beet', 'organic': false }] + * + * var food = [ + * { 'name': 'banana', 'type': 'fruit' }, + * { 'name': 'beet', 'type': 'vegetable' }, + * { 'name': 'carrot', 'type': 'vegetable' } + * ]; + * + * // using "_.where" callback shorthand + * _.initial(food, { 'type': 'vegetable' }); + * // => [{ 'name': 'banana', 'type': 'fruit' }] + */ + function initial(array, callback, thisArg) { + if (!array) { + return []; + } + var n = 0, + length = array.length; + + if (typeof callback != 'number' && callback != null) { + var index = length; + callback = lodash.createCallback(callback, thisArg); + while (index-- && callback(array[index], index, array)) { + n++; + } + } else { + n = (callback == null || thisArg) ? 1 : callback || n; + } + return slice(array, 0, nativeMin(nativeMax(0, length - n), length)); + } + + /** + * Computes the intersection of all the passed-in arrays using strict equality + * for comparisons, i.e. `===`. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} [array1, array2, ...] Arrays to process. + * @returns {Array} Returns a new array of unique elements that are present + * in **all** of the arrays. + * @example + * + * _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]); + * // => [1, 2] + */ + function intersection(array) { + var args = arguments, + argsLength = args.length, + argsIndex = -1, + caches = getArray(), + index = -1, + indexOf = getIndexOf(), + length = array ? array.length : 0, + result = [], + seen = getArray(); + + while (++argsIndex < argsLength) { + var value = args[argsIndex]; + caches[argsIndex] = indexOf === basicIndexOf && + (value ? value.length : 0) >= largeArraySize && + createCache(argsIndex ? args[argsIndex] : seen); + } + outer: + while (++index < length) { + var cache = caches[0]; + value = array[index]; + + if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) { + argsIndex = argsLength; + (cache || seen).push(value); + while (--argsIndex) { + cache = caches[argsIndex]; + if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) { + continue outer; + } + } + result.push(value); + } + } + while (argsLength--) { + cache = caches[argsLength]; + if (cache) { + releaseObject(cache); + } + } + releaseArray(caches); + releaseArray(seen); + return result; + } + + /** + * Gets the last element of the `array`. If a number `n` is passed, the + * last `n` elements of the `array` are returned. If a `callback` function + * is passed, elements at the end of the array are returned as long as the + * `callback` returns truthy. The `callback` is bound to `thisArg` and + * invoked with three arguments;(value, index, array). + * + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} array The array to query. + * @param {Function|Object|Number|String} [callback|n] The function called + * per element or the number of elements to return. If a property name or + * object is passed, it will be used to create a "_.pluck" or "_.where" + * style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Mixed} Returns the last element(s) of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + * + * _.last([1, 2, 3], 2); + * // => [2, 3] + * + * _.last([1, 2, 3], function(num) { + * return num > 1; + * }); + * // => [2, 3] + * + * var food = [ + * { 'name': 'beet', 'organic': false }, + * { 'name': 'carrot', 'organic': true } + * ]; + * + * // using "_.pluck" callback shorthand + * _.last(food, 'organic'); + * // => [{ 'name': 'carrot', 'organic': true }] + * + * var food = [ + * { 'name': 'banana', 'type': 'fruit' }, + * { 'name': 'beet', 'type': 'vegetable' }, + * { 'name': 'carrot', 'type': 'vegetable' } + * ]; + * + * // using "_.where" callback shorthand + * _.last(food, { 'type': 'vegetable' }); + * // => [{ 'name': 'beet', 'type': 'vegetable' }, { 'name': 'carrot', 'type': 'vegetable' }] + */ + function last(array, callback, thisArg) { + if (array) { + var n = 0, + length = array.length; + + if (typeof callback != 'number' && callback != null) { + var index = length; + callback = lodash.createCallback(callback, thisArg); + while (index-- && callback(array[index], index, array)) { + n++; + } + } else { + n = callback; + if (n == null || thisArg) { + return array[length - 1]; + } + } + return slice(array, nativeMax(0, length - n)); + } + } + + /** + * Gets the index at which the last occurrence of `value` is found using strict + * equality for comparisons, i.e. `===`. If `fromIndex` is negative, it is used + * as the offset from the end of the collection. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} array The array to search. + * @param {Mixed} value The value to search for. + * @param {Number} [fromIndex=array.length-1] The index to search from. + * @returns {Number} Returns the index of the matched value or `-1`. + * @example + * + * _.lastIndexOf([1, 2, 3, 1, 2, 3], 2); + * // => 4 + * + * _.lastIndexOf([1, 2, 3, 1, 2, 3], 2, 3); + * // => 1 + */ + function lastIndexOf(array, value, fromIndex) { + var index = array ? array.length : 0; + if (typeof fromIndex == 'number') { + index = (fromIndex < 0 ? nativeMax(0, index + fromIndex) : nativeMin(fromIndex, index - 1)) + 1; + } + while (index--) { + if (array[index] === value) { + return index; + } + } + return -1; + } + + /** + * Creates an array of numbers (positive and/or negative) progressing from + * `start` up to but not including `end`. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Number} [start=0] The start of the range. + * @param {Number} end The end of the range. + * @param {Number} [step=1] The value to increment or decrement by. + * @returns {Array} Returns a new range array. + * @example + * + * _.range(10); + * // => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + * + * _.range(1, 11); + * // => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + * + * _.range(0, 30, 5); + * // => [0, 5, 10, 15, 20, 25] + * + * _.range(0, -10, -1); + * // => [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] + * + * _.range(0); + * // => [] + */ + function range(start, end, step) { + start = +start || 0; + step = +step || 1; + + if (end == null) { + end = start; + start = 0; + } + // use `Array(length)` so V8 will avoid the slower "dictionary" mode + // http://youtu.be/XAqIpGU8ZZk#t=17m25s + var index = -1, + length = nativeMax(0, ceil((end - start) / step)), + result = Array(length); + + while (++index < length) { + result[index] = start; + start += step; + } + return result; + } + + /** + * The opposite of `_.initial`, this method gets all but the first value of + * `array`. If a number `n` is passed, the first `n` values are excluded from + * the result. If a `callback` function is passed, elements at the beginning + * of the array are excluded from the result as long as the `callback` returns + * truthy. The `callback` is bound to `thisArg` and invoked with three + * arguments; (value, index, array). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @alias drop, tail + * @category Arrays + * @param {Array} array The array to query. + * @param {Function|Object|Number|String} [callback|n=1] The function called + * per element or the number of elements to exclude. If a property name or + * object is passed, it will be used to create a "_.pluck" or "_.where" + * style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Array} Returns a slice of `array`. + * @example + * + * _.rest([1, 2, 3]); + * // => [2, 3] + * + * _.rest([1, 2, 3], 2); + * // => [3] + * + * _.rest([1, 2, 3], function(num) { + * return num < 3; + * }); + * // => [3] + * + * var food = [ + * { 'name': 'banana', 'organic': true }, + * { 'name': 'beet', 'organic': false }, + * ]; + * + * // using "_.pluck" callback shorthand + * _.rest(food, 'organic'); + * // => [{ 'name': 'beet', 'organic': false }] + * + * var food = [ + * { 'name': 'apple', 'type': 'fruit' }, + * { 'name': 'banana', 'type': 'fruit' }, + * { 'name': 'beet', 'type': 'vegetable' } + * ]; + * + * // using "_.where" callback shorthand + * _.rest(food, { 'type': 'fruit' }); + * // => [{ 'name': 'beet', 'type': 'vegetable' }] + */ + function rest(array, callback, thisArg) { + if (typeof callback != 'number' && callback != null) { + var n = 0, + index = -1, + length = array ? array.length : 0; + + callback = lodash.createCallback(callback, thisArg); + while (++index < length && callback(array[index], index, array)) { + n++; + } + } else { + n = (callback == null || thisArg) ? 1 : nativeMax(0, callback); + } + return slice(array, n); + } + + /** + * Uses a binary search to determine the smallest index at which the `value` + * should be inserted into `array` in order to maintain the sort order of the + * sorted `array`. If `callback` is passed, it will be executed for `value` and + * each element in `array` to compute their sort ranking. The `callback` is + * bound to `thisArg` and invoked with one argument; (value). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} array The array to inspect. + * @param {Mixed} value The value to evaluate. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Number} Returns the index at which the value should be inserted + * into `array`. + * @example + * + * _.sortedIndex([20, 30, 50], 40); + * // => 2 + * + * // using "_.pluck" callback shorthand + * _.sortedIndex([{ 'x': 20 }, { 'x': 30 }, { 'x': 50 }], { 'x': 40 }, 'x'); + * // => 2 + * + * var dict = { + * 'wordToNumber': { 'twenty': 20, 'thirty': 30, 'fourty': 40, 'fifty': 50 } + * }; + * + * _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) { + * return dict.wordToNumber[word]; + * }); + * // => 2 + * + * _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) { + * return this.wordToNumber[word]; + * }, dict); + * // => 2 + */ + function sortedIndex(array, value, callback, thisArg) { + var low = 0, + high = array ? array.length : low; + + // explicitly reference `identity` for better inlining in Firefox + callback = callback ? lodash.createCallback(callback, thisArg, 1) : identity; + value = callback(value); + + while (low < high) { + var mid = (low + high) >>> 1; + (callback(array[mid]) < value) + ? low = mid + 1 + : high = mid; + } + return low; + } + + /** + * Computes the union of the passed-in arrays using strict equality for + * comparisons, i.e. `===`. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} [array1, array2, ...] Arrays to process. + * @returns {Array} Returns a new array of unique values, in order, that are + * present in one or more of the arrays. + * @example + * + * _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]); + * // => [1, 2, 3, 101, 10] + */ + function union(array) { + if (!isArray(array)) { + arguments[0] = array ? nativeSlice.call(array) : arrayRef; + } + return uniq(concat.apply(arrayRef, arguments)); + } + + /** + * Creates a duplicate-value-free version of the `array` using strict equality + * for comparisons, i.e. `===`. If the `array` is already sorted, passing `true` + * for `isSorted` will run a faster algorithm. If `callback` is passed, each + * element of `array` is passed through the `callback` before uniqueness is computed. + * The `callback` is bound to `thisArg` and invoked with three arguments; (value, index, array). + * + * If a property name is passed for `callback`, the created "_.pluck" style + * callback will return the property value of the given element. + * + * If an object is passed for `callback`, the created "_.where" style callback + * will return `true` for elements that have the properties of the given object, + * else `false`. + * + * @static + * @memberOf _ + * @alias unique + * @category Arrays + * @param {Array} array The array to process. + * @param {Boolean} [isSorted=false] A flag to indicate that the `array` is already sorted. + * @param {Function|Object|String} [callback=identity] The function called per + * iteration. If a property name or object is passed, it will be used to create + * a "_.pluck" or "_.where" style callback, respectively. + * @param {Mixed} [thisArg] The `this` binding of `callback`. + * @returns {Array} Returns a duplicate-value-free array. + * @example + * + * _.uniq([1, 2, 1, 3, 1]); + * // => [1, 2, 3] + * + * _.uniq([1, 1, 2, 2, 3], true); + * // => [1, 2, 3] + * + * _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); }); + * // => ['A', 'b', 'C'] + * + * _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math); + * // => [1, 2.5, 3] + * + * // using "_.pluck" callback shorthand + * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] + */ + var uniq = overloadWrapper(function(array, isSorted, callback) { + var index = -1, + indexOf = getIndexOf(), + length = array ? array.length : 0, + result = []; + + var isLarge = !isSorted && length >= largeArraySize && indexOf === basicIndexOf, + seen = (callback || isLarge) ? getArray() : result; + + if (isLarge) { + var cache = createCache(seen); + if (cache) { + indexOf = cacheIndexOf; + seen = cache; + } else { + isLarge = false; + seen = callback ? seen : (releaseArray(seen), result); + } + } + while (++index < length) { + var value = array[index], + computed = callback ? callback(value, index, array) : value; + + if (isSorted + ? !index || seen[seen.length - 1] !== computed + : indexOf(seen, computed) < 0 + ) { + if (callback || isLarge) { + seen.push(computed); + } + result.push(value); + } + } + if (isLarge) { + releaseArray(seen.array); + releaseObject(seen); + } else if (callback) { + releaseArray(seen); + } + return result; + }); + + /** + * The inverse of `_.zip`, this method splits groups of elements into arrays + * composed of elements from each group at their corresponding indexes. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} array The array to process. + * @returns {Array} Returns a new array of the composed arrays. + * @example + * + * _.unzip([['moe', 30, true], ['larry', 40, false]]); + * // => [['moe', 'larry'], [30, 40], [true, false]]; + */ + function unzip(array) { + var index = -1, + length = array ? max(pluck(array, 'length')) : 0, + result = Array(length < 0 ? 0 : length); + + while (++index < length) { + result[index] = pluck(array, index); + } + return result; + } + + /** + * Creates an array with all occurrences of the passed values removed using + * strict equality for comparisons, i.e. `===`. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} array The array to filter. + * @param {Mixed} [value1, value2, ...] Values to remove. + * @returns {Array} Returns a new filtered array. + * @example + * + * _.without([1, 2, 1, 0, 3, 1, 4], 0, 1); + * // => [2, 3, 4] + */ + function without(array) { + return difference(array, nativeSlice.call(arguments, 1)); + } + + /** + * Groups the elements of each array at their corresponding indexes. Useful for + * separate data sources that are coordinated through matching array indexes. + * For a matrix of nested arrays, `_.zip.apply(...)` can transpose the matrix + * in a similar fashion. + * + * @static + * @memberOf _ + * @category Arrays + * @param {Array} [array1, array2, ...] Arrays to process. + * @returns {Array} Returns a new array of grouped elements. + * @example + * + * _.zip(['moe', 'larry'], [30, 40], [true, false]); + * // => [['moe', 30, true], ['larry', 40, false]] + */ + function zip(array) { + return array ? unzip(arguments) : []; + } + + /** + * Creates an object composed from arrays of `keys` and `values`. Pass either + * a single two dimensional array, i.e. `[[key1, value1], [key2, value2]]`, or + * two arrays, one of `keys` and one of corresponding `values`. + * + * @static + * @memberOf _ + * @alias object + * @category Arrays + * @param {Array} keys The array of keys. + * @param {Array} [values=[]] The array of values. + * @returns {Object} Returns an object composed of the given keys and + * corresponding values. + * @example + * + * _.zipObject(['moe', 'larry'], [30, 40]); + * // => { 'moe': 30, 'larry': 40 } + */ + function zipObject(keys, values) { + var index = -1, + length = keys ? keys.length : 0, + result = {}; + + while (++index < length) { + var key = keys[index]; + if (values) { + result[key] = values[index]; + } else { + result[key[0]] = key[1]; + } + } + return result; + } + + /*--------------------------------------------------------------------------*/ + + /** + * If `n` is greater than `0`, a function is created that is restricted to + * executing `func`, with the `this` binding and arguments of the created + * function, only after it is called `n` times. If `n` is less than `1`, + * `func` is executed immediately, without a `this` binding or additional + * arguments, and its result is returned. + * + * @static + * @memberOf _ + * @category Functions + * @param {Number} n The number of times the function must be called before + * it is executed. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var renderNotes = _.after(notes.length, render); + * _.forEach(notes, function(note) { + * note.asyncSave({ 'success': renderNotes }); + * }); + * // `renderNotes` is run once, after all notes have saved + */ + function after(n, func) { + if (n < 1) { + return func(); + } + return function() { + if (--n < 1) { + return func.apply(this, arguments); + } + }; + } + + /** + * Creates a function that, when called, invokes `func` with the `this` + * binding of `thisArg` and prepends any additional `bind` arguments to those + * passed to the bound function. + * + * @static + * @memberOf _ + * @category Functions + * @param {Function} func The function to bind. + * @param {Mixed} [thisArg] The `this` binding of `func`. + * @param {Mixed} [arg1, arg2, ...] Arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * var func = function(greeting) { + * return greeting + ' ' + this.name; + * }; + * + * func = _.bind(func, { 'name': 'moe' }, 'hi'); + * func(); + * // => 'hi moe' + */ + function bind(func, thisArg) { + // use `Function#bind` if it exists and is fast + // (in V8 `Function#bind` is slower except when partially applied) + return support.fastBind || (nativeBind && arguments.length > 2) + ? nativeBind.call.apply(nativeBind, arguments) + : createBound(func, thisArg, nativeSlice.call(arguments, 2)); + } + + /** + * Binds methods on `object` to `object`, overwriting the existing method. + * Method names may be specified as individual arguments or as arrays of method + * names. If no method names are provided, all the function properties of `object` + * will be bound. + * + * @static + * @memberOf _ + * @category Functions + * @param {Object} object The object to bind and assign the bound methods to. + * @param {String} [methodName1, methodName2, ...] Method names on the object to bind. + * @returns {Object} Returns `object`. + * @example + * + * var view = { + * 'label': 'docs', + * 'onClick': function() { alert('clicked ' + this.label); } + * }; + * + * _.bindAll(view); + * jQuery('#docs').on('click', view.onClick); + * // => alerts 'clicked docs', when the button is clicked + */ + function bindAll(object) { + var funcs = arguments.length > 1 ? concat.apply(arrayRef, nativeSlice.call(arguments, 1)) : functions(object), + index = -1, + length = funcs.length; + + while (++index < length) { + var key = funcs[index]; + object[key] = bind(object[key], object); + } + return object; + } + + /** + * Creates a function that, when called, invokes the method at `object[key]` + * and prepends any additional `bindKey` arguments to those passed to the bound + * function. This method differs from `_.bind` by allowing bound functions to + * reference methods that will be redefined or don't yet exist. + * See http://michaux.ca/articles/lazy-function-definition-pattern. + * + * @static + * @memberOf _ + * @category Functions + * @param {Object} object The object the method belongs to. + * @param {String} key The key of the method. + * @param {Mixed} [arg1, arg2, ...] Arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * var object = { + * 'name': 'moe', + * 'greet': function(greeting) { + * return greeting + ' ' + this.name; + * } + * }; + * + * var func = _.bindKey(object, 'greet', 'hi'); + * func(); + * // => 'hi moe' + * + * object.greet = function(greeting) { + * return greeting + ', ' + this.name + '!'; + * }; + * + * func(); + * // => 'hi, moe!' + */ + function bindKey(object, key) { + return createBound(object, key, nativeSlice.call(arguments, 2), indicatorObject); + } + + /** + * Creates a function that is the composition of the passed functions, + * where each function consumes the return value of the function that follows. + * For example, composing the functions `f()`, `g()`, and `h()` produces `f(g(h()))`. + * Each function is executed with the `this` binding of the composed function. + * + * @static + * @memberOf _ + * @category Functions + * @param {Function} [func1, func2, ...] Functions to compose. + * @returns {Function} Returns the new composed function. + * @example + * + * var greet = function(name) { return 'hi ' + name; }; + * var exclaim = function(statement) { return statement + '!'; }; + * var welcome = _.compose(exclaim, greet); + * welcome('moe'); + * // => 'hi moe!' + */ + function compose() { + var funcs = arguments; + return function() { + var args = arguments, + length = funcs.length; + + while (length--) { + args = [funcs[length].apply(this, args)]; + } + return args[0]; + }; + } + + /** + * Produces a callback bound to an optional `thisArg`. If `func` is a property + * name, the created callback will return the property value for a given element. + * If `func` is an object, the created callback will return `true` for elements + * that contain the equivalent object properties, otherwise it will return `false`. + * + * Note: All Lo-Dash methods, that accept a `callback` argument, use `_.createCallback`. + * + * @static + * @memberOf _ + * @category Functions + * @param {Mixed} [func=identity] The value to convert to a callback. + * @param {Mixed} [thisArg] The `this` binding of the created callback. + * @param {Number} [argCount=3] The number of arguments the callback accepts. + * @returns {Function} Returns a callback function. + * @example + * + * var stooges = [ + * { 'name': 'moe', 'age': 40 }, + * { 'name': 'larry', 'age': 50 } + * ]; + * + * // wrap to create custom callback shorthands + * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) { + * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback); + * return !match ? func(callback, thisArg) : function(object) { + * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3]; + * }; + * }); + * + * _.filter(stooges, 'age__gt45'); + * // => [{ 'name': 'larry', 'age': 50 }] + * + * // create mixins with support for "_.pluck" and "_.where" callback shorthands + * _.mixin({ + * 'toLookup': function(collection, callback, thisArg) { + * callback = _.createCallback(callback, thisArg); + * return _.reduce(collection, function(result, value, index, collection) { + * return (result[callback(value, index, collection)] = value, result); + * }, {}); + * } + * }); + * + * _.toLookup(stooges, 'name'); + * // => { 'moe': { 'name': 'moe', 'age': 40 }, 'larry': { 'name': 'larry', 'age': 50 } } + */ + function createCallback(func, thisArg, argCount) { + if (func == null) { + return identity; + } + var type = typeof func; + if (type != 'function') { + if (type != 'object') { + return function(object) { + return object[func]; + }; + } + var props = keys(func); + return function(object) { + var length = props.length, + result = false; + while (length--) { + if (!(result = isEqual(object[props[length]], func[props[length]], indicatorObject))) { + break; + } + } + return result; + }; + } + if (typeof thisArg == 'undefined' || (reThis && !reThis.test(fnToString.call(func)))) { + return func; + } + if (argCount === 1) { + return function(value) { + return func.call(thisArg, value); + }; + } + if (argCount === 2) { + return function(a, b) { + return func.call(thisArg, a, b); + }; + } + if (argCount === 4) { + return function(accumulator, value, index, collection) { + return func.call(thisArg, accumulator, value, index, collection); + }; + } + return function(value, index, collection) { + return func.call(thisArg, value, index, collection); + }; + } + + /** + * Creates a function that will delay the execution of `func` until after + * `wait` milliseconds have elapsed since the last time it was invoked. Pass + * an `options` object to indicate that `func` should be invoked on the leading + * and/or trailing edge of the `wait` timeout. Subsequent calls to the debounced + * function will return the result of the last `func` call. + * + * Note: If `leading` and `trailing` options are `true`, `func` will be called + * on the trailing edge of the timeout only if the the debounced function is + * invoked more than once during the `wait` timeout. + * + * @static + * @memberOf _ + * @category Functions + * @param {Function} func The function to debounce. + * @param {Number} wait The number of milliseconds to delay. + * @param {Object} options The options object. + * [leading=false] A boolean to specify execution on the leading edge of the timeout. + * [maxWait] The maximum time `func` is allowed to be delayed before it's called. + * [trailing=true] A boolean to specify execution on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * var lazyLayout = _.debounce(calculateLayout, 300); + * jQuery(window).on('resize', lazyLayout); + * + * jQuery('#postbox').on('click', _.debounce(sendMail, 200, { + * 'leading': true, + * 'trailing': false + * }); + */ + function debounce(func, wait, options) { + var args, + result, + thisArg, + callCount = 0, + lastCalled = 0, + maxWait = false, + maxTimeoutId = null, + timeoutId = null, + trailing = true; + + function clear() { + clearTimeout(maxTimeoutId); + clearTimeout(timeoutId); + callCount = 0; + maxTimeoutId = timeoutId = null; + } + + function delayed() { + var isCalled = trailing && (!leading || callCount > 1); + clear(); + if (isCalled) { + if (maxWait !== false) { + lastCalled = new Date; + } + result = func.apply(thisArg, args); + } + } + + function maxDelayed() { + clear(); + if (trailing || (maxWait !== wait)) { + lastCalled = new Date; + result = func.apply(thisArg, args); + } + } + + wait = nativeMax(0, wait || 0); + if (options === true) { + var leading = true; + trailing = false; + } else if (isObject(options)) { + leading = options.leading; + maxWait = 'maxWait' in options && nativeMax(wait, options.maxWait || 0); + trailing = 'trailing' in options ? options.trailing : trailing; + } + return function() { + args = arguments; + thisArg = this; + callCount++; + + // avoid issues with Titanium and `undefined` timeout ids + // https://github.com/appcelerator/titanium_mobile/blob/3_1_0_GA/android/titanium/src/java/ti/modules/titanium/TitaniumModule.java#L185-L192 + clearTimeout(timeoutId); + + if (maxWait === false) { + if (leading && callCount < 2) { + result = func.apply(thisArg, args); + } + } else { + var now = new Date; + if (!maxTimeoutId && !leading) { + lastCalled = now; + } + var remaining = maxWait - (now - lastCalled); + if (remaining <= 0) { + clearTimeout(maxTimeoutId); + maxTimeoutId = null; + lastCalled = now; + result = func.apply(thisArg, args); + } + else if (!maxTimeoutId) { + maxTimeoutId = setTimeout(maxDelayed, remaining); + } + } + if (wait !== maxWait) { + timeoutId = setTimeout(delayed, wait); + } + return result; + }; + } + + /** + * Defers executing the `func` function until the current call stack has cleared. + * Additional arguments will be passed to `func` when it is invoked. + * + * @static + * @memberOf _ + * @category Functions + * @param {Function} func The function to defer. + * @param {Mixed} [arg1, arg2, ...] Arguments to invoke the function with. + * @returns {Number} Returns the timer id. + * @example + * + * _.defer(function() { alert('deferred'); }); + * // returns from the function before `alert` is called + */ + function defer(func) { + var args = nativeSlice.call(arguments, 1); + return setTimeout(function() { func.apply(undefined, args); }, 1); + } + // use `setImmediate` if it's available in Node.js + if (isV8 && freeModule && typeof setImmediate == 'function') { + defer = bind(setImmediate, context); + } + + /** + * Executes the `func` function after `wait` milliseconds. Additional arguments + * will be passed to `func` when it is invoked. + * + * @static + * @memberOf _ + * @category Functions + * @param {Function} func The function to delay. + * @param {Number} wait The number of milliseconds to delay execution. + * @param {Mixed} [arg1, arg2, ...] Arguments to invoke the function with. + * @returns {Number} Returns the timer id. + * @example + * + * var log = _.bind(console.log, console); + * _.delay(log, 1000, 'logged later'); + * // => 'logged later' (Appears after one second.) + */ + function delay(func, wait) { + var args = nativeSlice.call(arguments, 2); + return setTimeout(function() { func.apply(undefined, args); }, wait); + } + + /** + * Creates a function that memoizes the result of `func`. If `resolver` is + * passed, it will be used to determine the cache key for storing the result + * based on the arguments passed to the memoized function. By default, the first + * argument passed to the memoized function is used as the cache key. The `func` + * is executed with the `this` binding of the memoized function. The result + * cache is exposed as the `cache` property on the memoized function. + * + * @static + * @memberOf _ + * @category Functions + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] A function used to resolve the cache key. + * @returns {Function} Returns the new memoizing function. + * @example + * + * var fibonacci = _.memoize(function(n) { + * return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2); + * }); + */ + function memoize(func, resolver) { + function memoized() { + var cache = memoized.cache, + key = keyPrefix + (resolver ? resolver.apply(this, arguments) : arguments[0]); + + return hasOwnProperty.call(cache, key) + ? cache[key] + : (cache[key] = func.apply(this, arguments)); + } + memoized.cache = {}; + return memoized; + } + + /** + * Creates a function that is restricted to execute `func` once. Repeat calls to + * the function will return the value of the first call. The `func` is executed + * with the `this` binding of the created function. + * + * @static + * @memberOf _ + * @category Functions + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var initialize = _.once(createApplication); + * initialize(); + * initialize(); + * // `initialize` executes `createApplication` once + */ + function once(func) { + var ran, + result; + + return function() { + if (ran) { + return result; + } + ran = true; + result = func.apply(this, arguments); + + // clear the `func` variable so the function may be garbage collected + func = null; + return result; + }; + } + + /** + * Creates a function that, when called, invokes `func` with any additional + * `partial` arguments prepended to those passed to the new function. This + * method is similar to `_.bind`, except it does **not** alter the `this` binding. + * + * @static + * @memberOf _ + * @category Functions + * @param {Function} func The function to partially apply arguments to. + * @param {Mixed} [arg1, arg2, ...] Arguments to be partially applied. + * @returns {Function} Returns the new partially applied function. + * @example + * + * var greet = function(greeting, name) { return greeting + ' ' + name; }; + * var hi = _.partial(greet, 'hi'); + * hi('moe'); + * // => 'hi moe' + */ + function partial(func) { + return createBound(func, nativeSlice.call(arguments, 1)); + } + + /** + * This method is similar to `_.partial`, except that `partial` arguments are + * appended to those passed to the new function. + * + * @static + * @memberOf _ + * @category Functions + * @param {Function} func The function to partially apply arguments to. + * @param {Mixed} [arg1, arg2, ...] Arguments to be partially applied. + * @returns {Function} Returns the new partially applied function. + * @example + * + * var defaultsDeep = _.partialRight(_.merge, _.defaults); + * + * var options = { + * 'variable': 'data', + * 'imports': { 'jq': $ } + * }; + * + * defaultsDeep(options, _.templateSettings); + * + * options.variable + * // => 'data' + * + * options.imports + * // => { '_': _, 'jq': $ } + */ + function partialRight(func) { + return createBound(func, nativeSlice.call(arguments, 1), null, indicatorObject); + } + + /** + * Creates a function that, when executed, will only call the `func` function + * at most once per every `wait` milliseconds. Pass an `options` object to + * indicate that `func` should be invoked on the leading and/or trailing edge + * of the `wait` timeout. Subsequent calls to the throttled function will + * return the result of the last `func` call. + * + * Note: If `leading` and `trailing` options are `true`, `func` will be called + * on the trailing edge of the timeout only if the the throttled function is + * invoked more than once during the `wait` timeout. + * + * @static + * @memberOf _ + * @category Functions + * @param {Function} func The function to throttle. + * @param {Number} wait The number of milliseconds to throttle executions to. + * @param {Object} options The options object. + * [leading=true] A boolean to specify execution on the leading edge of the timeout. + * [trailing=true] A boolean to specify execution on the trailing edge of the timeout. + * @returns {Function} Returns the new throttled function. + * @example + * + * var throttled = _.throttle(updatePosition, 100); + * jQuery(window).on('scroll', throttled); + * + * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, { + * 'trailing': false + * })); + */ + function throttle(func, wait, options) { + var leading = true, + trailing = true; + + if (options === false) { + leading = false; + } else if (isObject(options)) { + leading = 'leading' in options ? options.leading : leading; + trailing = 'trailing' in options ? options.trailing : trailing; + } + options = getObject(); + options.leading = leading; + options.maxWait = wait; + options.trailing = trailing; + + var result = debounce(func, wait, options); + releaseObject(options); + return result; + } + + /** + * Creates a function that passes `value` to the `wrapper` function as its + * first argument. Additional arguments passed to the function are appended + * to those passed to the `wrapper` function. The `wrapper` is executed with + * the `this` binding of the created function. + * + * @static + * @memberOf _ + * @category Functions + * @param {Mixed} value The value to wrap. + * @param {Function} wrapper The wrapper function. + * @returns {Function} Returns the new function. + * @example + * + * var hello = function(name) { return 'hello ' + name; }; + * hello = _.wrap(hello, function(func) { + * return 'before, ' + func('moe') + ', after'; + * }); + * hello(); + * // => 'before, hello moe, after' + */ + function wrap(value, wrapper) { + return function() { + var args = [value]; + push.apply(args, arguments); + return wrapper.apply(this, args); + }; + } + + /*--------------------------------------------------------------------------*/ + + /** + * Converts the characters `&`, `<`, `>`, `"`, and `'` in `string` to their + * corresponding HTML entities. + * + * @static + * @memberOf _ + * @category Utilities + * @param {String} string The string to escape. + * @returns {String} Returns the escaped string. + * @example + * + * _.escape('Moe, Larry & Curly'); + * // => 'Moe, Larry & Curly' + */ + function escape(string) { + return string == null ? '' : String(string).replace(reUnescapedHtml, escapeHtmlChar); + } + + /** + * This method returns the first argument passed to it. + * + * @static + * @memberOf _ + * @category Utilities + * @param {Mixed} value Any value. + * @returns {Mixed} Returns `value`. + * @example + * + * var moe = { 'name': 'moe' }; + * moe === _.identity(moe); + * // => true + */ + function identity(value) { + return value; + } + + /** + * Adds functions properties of `object` to the `lodash` function and chainable + * wrapper. + * + * @static + * @memberOf _ + * @category Utilities + * @param {Object} object The object of function properties to add to `lodash`. + * @example + * + * _.mixin({ + * 'capitalize': function(string) { + * return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase(); + * } + * }); + * + * _.capitalize('moe'); + * // => 'Moe' + * + * _('moe').capitalize(); + * // => 'Moe' + */ + function mixin(object) { + forEach(functions(object), function(methodName) { + var func = lodash[methodName] = object[methodName]; + + lodash.prototype[methodName] = function() { + var value = this.__wrapped__, + args = [value]; + + push.apply(args, arguments); + var result = func.apply(lodash, args); + return (value && typeof value == 'object' && value === result) + ? this + : new lodashWrapper(result); + }; + }); + } + + /** + * Reverts the '_' variable to its previous value and returns a reference to + * the `lodash` function. + * + * @static + * @memberOf _ + * @category Utilities + * @returns {Function} Returns the `lodash` function. + * @example + * + * var lodash = _.noConflict(); + */ + function noConflict() { + context._ = oldDash; + return this; + } + + /** + * Converts the given `value` into an integer of the specified `radix`. + * If `radix` is `undefined` or `0`, a `radix` of `10` is used unless the + * `value` is a hexadecimal, in which case a `radix` of `16` is used. + * + * Note: This method avoids differences in native ES3 and ES5 `parseInt` + * implementations. See http://es5.github.com/#E. + * + * @static + * @memberOf _ + * @category Utilities + * @param {String} value The value to parse. + * @param {Number} [radix] The radix used to interpret the value to parse. + * @returns {Number} Returns the new integer value. + * @example + * + * _.parseInt('08'); + * // => 8 + */ + var parseInt = nativeParseInt(whitespace + '08') == 8 ? nativeParseInt : function(value, radix) { + // Firefox and Opera still follow the ES3 specified implementation of `parseInt` + return nativeParseInt(isString(value) ? value.replace(reLeadingSpacesAndZeros, '') : value, radix || 0); + }; + + /** + * Produces a random number between `min` and `max` (inclusive). If only one + * argument is passed, a number between `0` and the given number will be returned. + * + * @static + * @memberOf _ + * @category Utilities + * @param {Number} [min=0] The minimum possible value. + * @param {Number} [max=1] The maximum possible value. + * @returns {Number} Returns a random number. + * @example + * + * _.random(0, 5); + * // => a number between 0 and 5 + * + * _.random(5); + * // => also a number between 0 and 5 + */ + function random(min, max) { + if (min == null && max == null) { + max = 1; + } + min = +min || 0; + if (max == null) { + max = min; + min = 0; + } else { + max = +max || 0; + } + var rand = nativeRandom(); + return (min % 1 || max % 1) + ? min + nativeMin(rand * (max - min + parseFloat('1e-' + ((rand +'').length - 1))), max) + : min + floor(rand * (max - min + 1)); + } + + /** + * Resolves the value of `property` on `object`. If `property` is a function, + * it will be invoked with the `this` binding of `object` and its result returned, + * else the property value is returned. If `object` is falsey, then `undefined` + * is returned. + * + * @static + * @memberOf _ + * @category Utilities + * @param {Object} object The object to inspect. + * @param {String} property The property to get the value of. + * @returns {Mixed} Returns the resolved value. + * @example + * + * var object = { + * 'cheese': 'crumpets', + * 'stuff': function() { + * return 'nonsense'; + * } + * }; + * + * _.result(object, 'cheese'); + * // => 'crumpets' + * + * _.result(object, 'stuff'); + * // => 'nonsense' + */ + function result(object, property) { + var value = object ? object[property] : undefined; + return isFunction(value) ? object[property]() : value; + } + + /** + * A micro-templating method that handles arbitrary delimiters, preserves + * whitespace, and correctly escapes quotes within interpolated code. + * + * Note: In the development build, `_.template` utilizes sourceURLs for easier + * debugging. See http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl + * + * For more information on precompiling templates see: + * http://lodash.com/#custom-builds + * + * For more information on Chrome extension sandboxes see: + * http://developer.chrome.com/stable/extensions/sandboxingEval.html + * + * @static + * @memberOf _ + * @category Utilities + * @param {String} text The template text. + * @param {Object} data The data object used to populate the text. + * @param {Object} options The options object. + * escape - The "escape" delimiter regexp. + * evaluate - The "evaluate" delimiter regexp. + * interpolate - The "interpolate" delimiter regexp. + * sourceURL - The sourceURL of the template's compiled source. + * variable - The data object variable name. + * @returns {Function|String} Returns a compiled function when no `data` object + * is given, else it returns the interpolated text. + * @example + * + * // using a compiled template + * var compiled = _.template('hello <%= name %>'); + * compiled({ 'name': 'moe' }); + * // => 'hello moe' + * + * var list = '<% _.forEach(people, function(name) { %>
  • <%= name %>
  • <% }); %>'; + * _.template(list, { 'people': ['moe', 'larry'] }); + * // => '
  • moe
  • larry
  • ' + * + * // using the "escape" delimiter to escape HTML in data property values + * _.template('<%- value %>', { 'value': ' + +``` + +## Documentation + +Some functions are also available in the following forms: +* `Series` - the same as `` but runs only a single async operation at a time +* `Limit` - the same as `` but runs a maximum of `limit` async operations at a time + +### Collections + +* [`each`](#each), `eachSeries`, `eachLimit` +* [`forEachOf`](#forEachOf), `forEachOfSeries`, `forEachOfLimit` +* [`map`](#map), `mapSeries`, `mapLimit` +* [`filter`](#filter), `filterSeries`, `filterLimit` +* [`reject`](#reject), `rejectSeries`, `rejectLimit` +* [`reduce`](#reduce), [`reduceRight`](#reduceRight) +* [`detect`](#detect), `detectSeries`, `detectLimit` +* [`sortBy`](#sortBy) +* [`some`](#some), `someLimit` +* [`every`](#every), `everyLimit` +* [`concat`](#concat), `concatSeries` + +### Control Flow + +* [`series`](#seriestasks-callback) +* [`parallel`](#parallel), `parallelLimit` +* [`whilst`](#whilst), [`doWhilst`](#doWhilst) +* [`until`](#until), [`doUntil`](#doUntil) +* [`during`](#during), [`doDuring`](#doDuring) +* [`forever`](#forever) +* [`waterfall`](#waterfall) +* [`compose`](#compose) +* [`seq`](#seq) +* [`applyEach`](#applyEach), `applyEachSeries` +* [`queue`](#queue), [`priorityQueue`](#priorityQueue) +* [`cargo`](#cargo) +* [`auto`](#auto) +* [`retry`](#retry) +* [`iterator`](#iterator) +* [`times`](#times), `timesSeries`, `timesLimit` + +### Utils + +* [`apply`](#apply) +* [`nextTick`](#nextTick) +* [`memoize`](#memoize) +* [`unmemoize`](#unmemoize) +* [`ensureAsync`](#ensureAsync) +* [`constant`](#constant) +* [`asyncify`](#asyncify) +* [`wrapSync`](#wrapSync) +* [`log`](#log) +* [`dir`](#dir) +* [`noConflict`](#noConflict) + +## Collections + +
    + +### each(arr, iterator, [callback]) + +Applies the function `iterator` to each item in `arr`, in parallel. +The `iterator` is called with an item from the list, and a callback for when it +has finished. If the `iterator` passes an error to its `callback`, the main +`callback` (for the `each` function) is immediately called with the error. + +Note, that since this function applies `iterator` to each item in parallel, +there is no guarantee that the iterator functions will complete in order. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err)` which must be called once it has + completed. If no error has occurred, the `callback` should be run without + arguments or with an explicit `null` argument. The array index is not passed + to the iterator. If you need the index, use [`forEachOf`](#forEachOf). +* `callback(err)` - *Optional* A callback which is called when all `iterator` functions + have finished, or an error occurs. + +__Examples__ + + +```js +// assuming openFiles is an array of file names and saveFile is a function +// to save the modified contents of that file: + +async.each(openFiles, saveFile, function(err){ + // if any of the saves produced an error, err would equal that error +}); +``` + +```js +// assuming openFiles is an array of file names + +async.each(openFiles, function(file, callback) { + + // Perform operation on file here. + console.log('Processing file ' + file); + + if( file.length > 32 ) { + console.log('This file name is too long'); + callback('File name too long'); + } else { + // Do work to process file here + console.log('File processed'); + callback(); + } +}, function(err){ + // if any of the file processing produced an error, err would equal that error + if( err ) { + // One of the iterations produced an error. + // All processing will now stop. + console.log('A file failed to process'); + } else { + console.log('All files have been processed successfully'); + } +}); +``` + +__Related__ + +* eachSeries(arr, iterator, [callback]) +* eachLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + + + +### forEachOf(obj, iterator, [callback]) + +Like `each`, except that it iterates over objects, and passes the key as the second argument to the iterator. + +__Arguments__ + +* `obj` - An object or array to iterate over. +* `iterator(item, key, callback)` - A function to apply to each item in `obj`. +The `key` is the item's key, or index in the case of an array. The iterator is +passed a `callback(err)` which must be called once it has completed. If no +error has occurred, the callback should be run without arguments or with an +explicit `null` argument. +* `callback(err)` - *Optional* A callback which is called when all `iterator` functions have finished, or an error occurs. + +__Example__ + +```js +var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"}; +var configs = {}; + +async.forEachOf(obj, function (value, key, callback) { + fs.readFile(__dirname + value, "utf8", function (err, data) { + if (err) return callback(err); + try { + configs[key] = JSON.parse(data); + } catch (e) { + return callback(e); + } + callback(); + }) +}, function (err) { + if (err) console.error(err.message); + // configs is now a map of JSON data + doSomethingWith(configs); +}) +``` + +__Related__ + +* forEachOfSeries(obj, iterator, [callback]) +* forEachOfLimit(obj, limit, iterator, [callback]) + +--------------------------------------- + + +### map(arr, iterator, [callback]) + +Produces a new array of values by mapping each value in `arr` through +the `iterator` function. The `iterator` is called with an item from `arr` and a +callback for when it has finished processing. Each of these callback takes 2 arguments: +an `error`, and the transformed item from `arr`. If `iterator` passes an error to its +callback, the main `callback` (for the `map` function) is immediately called with the error. + +Note, that since this function applies the `iterator` to each item in parallel, +there is no guarantee that the `iterator` functions will complete in order. +However, the results array will be in the same order as the original `arr`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, transformed)` which must be called once + it has completed with an error (which can be `null`) and a transformed item. +* `callback(err, results)` - *Optional* A callback which is called when all `iterator` + functions have finished, or an error occurs. Results is an array of the + transformed items from the `arr`. + +__Example__ + +```js +async.map(['file1','file2','file3'], fs.stat, function(err, results){ + // results is now an array of stats for each file +}); +``` + +__Related__ +* mapSeries(arr, iterator, [callback]) +* mapLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + + +### filter(arr, iterator, [callback]) + +__Alias:__ `select` + +Returns a new array of all the values in `arr` which pass an async truth test. +_The callback for each `iterator` call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. This operation is +performed in parallel, but the results array will be in the same order as the +original. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in `arr`. + The `iterator` is passed a `callback(truthValue)`, which must be called with a + boolean argument once it has completed. +* `callback(results)` - *Optional* A callback which is called after all the `iterator` + functions have finished. + +__Example__ + +```js +async.filter(['file1','file2','file3'], fs.exists, function(results){ + // results now equals an array of the existing files +}); +``` + +__Related__ + +* filterSeries(arr, iterator, [callback]) +* filterLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + +### reject(arr, iterator, [callback]) + +The opposite of [`filter`](#filter). Removes values that pass an `async` truth test. + +__Related__ + +* rejectSeries(arr, iterator, [callback]) +* rejectLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + +### reduce(arr, memo, iterator, [callback]) + +__Aliases:__ `inject`, `foldl` + +Reduces `arr` into a single value using an async `iterator` to return +each successive step. `memo` is the initial state of the reduction. +This function only operates in series. + +For performance reasons, it may make sense to split a call to this function into +a parallel map, and then use the normal `Array.prototype.reduce` on the results. +This function is for situations where each step in the reduction needs to be async; +if you can get the data before reducing it, then it's probably a good idea to do so. + +__Arguments__ + +* `arr` - An array to iterate over. +* `memo` - The initial state of the reduction. +* `iterator(memo, item, callback)` - A function applied to each item in the + array to produce the next step in the reduction. The `iterator` is passed a + `callback(err, reduction)` which accepts an optional error as its first + argument, and the state of the reduction as the second. If an error is + passed to the callback, the reduction is stopped and the main `callback` is + immediately called with the error. +* `callback(err, result)` - *Optional* A callback which is called after all the `iterator` + functions have finished. Result is the reduced value. + +__Example__ + +```js +async.reduce([1,2,3], 0, function(memo, item, callback){ + // pointless async: + process.nextTick(function(){ + callback(null, memo + item) + }); +}, function(err, result){ + // result is now equal to the last value of memo, which is 6 +}); +``` + +--------------------------------------- + + +### reduceRight(arr, memo, iterator, [callback]) + +__Alias:__ `foldr` + +Same as [`reduce`](#reduce), only operates on `arr` in reverse order. + + +--------------------------------------- + + +### detect(arr, iterator, [callback]) + +Returns the first value in `arr` that passes an async truth test. The +`iterator` is applied in parallel, meaning the first iterator to return `true` will +fire the detect `callback` with that result. That means the result might not be +the first item in the original `arr` (in terms of order) that passes the test. + +If order within the original `arr` is important, then look at [`detectSeries`](#detectSeries). + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in `arr`. + The iterator is passed a `callback(truthValue)` which must be called with a + boolean argument once it has completed. **Note: this callback does not take an error as its first argument.** +* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns + `true`, or after all the `iterator` functions have finished. Result will be + the first item in the array that passes the truth test (iterator) or the + value `undefined` if none passed. **Note: this callback does not take an error as its first argument.** + +__Example__ + +```js +async.detect(['file1','file2','file3'], fs.exists, function(result){ + // result now equals the first file in the list that exists +}); +``` + +__Related__ + +* detectSeries(arr, iterator, [callback]) +* detectLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + +### sortBy(arr, iterator, [callback]) + +Sorts a list by the results of running each `arr` value through an async `iterator`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, sortValue)` which must be called once it + has completed with an error (which can be `null`) and a value to use as the sort + criteria. +* `callback(err, results)` - *Optional* A callback which is called after all the `iterator` + functions have finished, or an error occurs. Results is the items from + the original `arr` sorted by the values returned by the `iterator` calls. + +__Example__ + +```js +async.sortBy(['file1','file2','file3'], function(file, callback){ + fs.stat(file, function(err, stats){ + callback(err, stats.mtime); + }); +}, function(err, results){ + // results is now the original array of files sorted by + // modified date +}); +``` + +__Sort Order__ + +By modifying the callback parameter the sorting order can be influenced: + +```js +//ascending order +async.sortBy([1,9,3,5], function(x, callback){ + callback(null, x); +}, function(err,result){ + //result callback +} ); + +//descending order +async.sortBy([1,9,3,5], function(x, callback){ + callback(null, x*-1); //<- x*-1 instead of x, turns the order around +}, function(err,result){ + //result callback +} ); +``` + +--------------------------------------- + + +### some(arr, iterator, [callback]) + +__Alias:__ `any` + +Returns `true` if at least one element in the `arr` satisfies an async test. +_The callback for each iterator call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. Once any iterator +call returns `true`, the main `callback` is immediately called. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in the array + in parallel. The iterator is passed a `callback(truthValue)`` which must be + called with a boolean argument once it has completed. +* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns + `true`, or after all the iterator functions have finished. Result will be + either `true` or `false` depending on the values of the async tests. + + **Note: the callbacks do not take an error as their first argument.** +__Example__ + +```js +async.some(['file1','file2','file3'], fs.exists, function(result){ + // if result is true then at least one of the files exists +}); +``` + +__Related__ + +* someLimit(arr, limit, iterator, callback) + +--------------------------------------- + + +### every(arr, iterator, [callback]) + +__Alias:__ `all` + +Returns `true` if every element in `arr` satisfies an async test. +_The callback for each `iterator` call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in the array + in parallel. The iterator is passed a `callback(truthValue)` which must be + called with a boolean argument once it has completed. +* `callback(result)` - *Optional* A callback which is called after all the `iterator` + functions have finished. Result will be either `true` or `false` depending on + the values of the async tests. + + **Note: the callbacks do not take an error as their first argument.** + +__Example__ + +```js +async.every(['file1','file2','file3'], fs.exists, function(result){ + // if result is true then every file exists +}); +``` + +__Related__ + +* everyLimit(arr, limit, iterator, callback) + +--------------------------------------- + + +### concat(arr, iterator, [callback]) + +Applies `iterator` to each item in `arr`, concatenating the results. Returns the +concatenated list. The `iterator`s are called in parallel, and the results are +concatenated as they return. There is no guarantee that the results array will +be returned in the original order of `arr` passed to the `iterator` function. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, results)` which must be called once it + has completed with an error (which can be `null`) and an array of results. +* `callback(err, results)` - *Optional* A callback which is called after all the `iterator` + functions have finished, or an error occurs. Results is an array containing + the concatenated results of the `iterator` function. + +__Example__ + +```js +async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ + // files is now a list of filenames that exist in the 3 directories +}); +``` + +__Related__ + +* concatSeries(arr, iterator, [callback]) + + +## Control Flow + + +### series(tasks, [callback]) + +Run the functions in the `tasks` array in series, each one running once the previous +function has completed. If any functions in the series pass an error to its +callback, no more functions are run, and `callback` is immediately called with the value of the error. +Otherwise, `callback` receives an array of results when `tasks` have completed. + +It is also possible to use an object instead of an array. Each property will be +run as a function, and the results will be passed to the final `callback` as an object +instead of an array. This can be a more readable way of handling results from +[`series`](#series). + +**Note** that while many implementations preserve the order of object properties, the +[ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) +explicitly states that + +> The mechanics and order of enumerating the properties is not specified. + +So if you rely on the order in which your series of functions are executed, and want +this to work on all platforms, consider using an array. + +__Arguments__ + +* `tasks` - An array or object containing functions to run, each function is passed + a `callback(err, result)` it must call on completion with an error `err` (which can + be `null`) and an optional `result` value. +* `callback(err, results)` - An optional callback to run once all the functions + have completed. This function gets a results array (or object) containing all + the result arguments passed to the `task` callbacks. + +__Example__ + +```js +async.series([ + function(callback){ + // do some stuff ... + callback(null, 'one'); + }, + function(callback){ + // do some more stuff ... + callback(null, 'two'); + } +], +// optional callback +function(err, results){ + // results is now equal to ['one', 'two'] +}); + + +// an example using an object instead of an array +async.series({ + one: function(callback){ + setTimeout(function(){ + callback(null, 1); + }, 200); + }, + two: function(callback){ + setTimeout(function(){ + callback(null, 2); + }, 100); + } +}, +function(err, results) { + // results is now equal to: {one: 1, two: 2} +}); +``` + +--------------------------------------- + + +### parallel(tasks, [callback]) + +Run the `tasks` array of functions in parallel, without waiting until the previous +function has completed. If any of the functions pass an error to its +callback, the main `callback` is immediately called with the value of the error. +Once the `tasks` have completed, the results are passed to the final `callback` as an +array. + +**Note:** `parallel` is about kicking-off I/O tasks in parallel, not about parallel execution of code. If your tasks do not use any timers or perform any I/O, they will actually be executed in series. Any synchronous setup sections for each task will happen one after the other. JavaScript remains single-threaded. + +It is also possible to use an object instead of an array. Each property will be +run as a function and the results will be passed to the final `callback` as an object +instead of an array. This can be a more readable way of handling results from +[`parallel`](#parallel). + + +__Arguments__ + +* `tasks` - An array or object containing functions to run. Each function is passed + a `callback(err, result)` which it must call on completion with an error `err` + (which can be `null`) and an optional `result` value. +* `callback(err, results)` - An optional callback to run once all the functions + have completed. This function gets a results array (or object) containing all + the result arguments passed to the task callbacks. + +__Example__ + +```js +async.parallel([ + function(callback){ + setTimeout(function(){ + callback(null, 'one'); + }, 200); + }, + function(callback){ + setTimeout(function(){ + callback(null, 'two'); + }, 100); + } +], +// optional callback +function(err, results){ + // the results array will equal ['one','two'] even though + // the second function had a shorter timeout. +}); + + +// an example using an object instead of an array +async.parallel({ + one: function(callback){ + setTimeout(function(){ + callback(null, 1); + }, 200); + }, + two: function(callback){ + setTimeout(function(){ + callback(null, 2); + }, 100); + } +}, +function(err, results) { + // results is now equals to: {one: 1, two: 2} +}); +``` + +__Related__ + +* parallelLimit(tasks, limit, [callback]) + +--------------------------------------- + + +### whilst(test, fn, callback) + +Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped, +or an error occurs. + +__Arguments__ + +* `test()` - synchronous truth test to perform before each execution of `fn`. +* `fn(callback)` - A function which is called each time `test` passes. The function is + passed a `callback(err)`, which must be called once it has completed with an + optional `err` argument. +* `callback(err)` - A callback which is called after the test fails and repeated + execution of `fn` has stopped. + +__Example__ + +```js +var count = 0; + +async.whilst( + function () { return count < 5; }, + function (callback) { + count++; + setTimeout(callback, 1000); + }, + function (err) { + // 5 seconds have passed + } +); +``` + +--------------------------------------- + + +### doWhilst(fn, test, callback) + +The post-check version of [`whilst`](#whilst). To reflect the difference in +the order of operations, the arguments `test` and `fn` are switched. + +`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. + +--------------------------------------- + + +### until(test, fn, callback) + +Repeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped, +or an error occurs. + +The inverse of [`whilst`](#whilst). + +--------------------------------------- + + +### doUntil(fn, test, callback) + +Like [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`. + +--------------------------------------- + + +### during(test, fn, callback) + +Like [`whilst`](#whilst), except the `test` is an asynchronous function that is passed a callback in the form of `function (err, truth)`. If error is passed to `test` or `fn`, the main callback is immediately called with the value of the error. + +__Example__ + +```js +var count = 0; + +async.during( + function (callback) { + return callback(null, count < 5); + }, + function (callback) { + count++; + setTimeout(callback, 1000); + }, + function (err) { + // 5 seconds have passed + } +); +``` + +--------------------------------------- + + +### doDuring(fn, test, callback) + +The post-check version of [`during`](#during). To reflect the difference in +the order of operations, the arguments `test` and `fn` are switched. + +Also a version of [`doWhilst`](#doWhilst) with asynchronous `test` function. + +--------------------------------------- + + +### forever(fn, [errback]) + +Calls the asynchronous function `fn` with a callback parameter that allows it to +call itself again, in series, indefinitely. + +If an error is passed to the callback then `errback` is called with the +error, and execution stops, otherwise it will never be called. + +```js +async.forever( + function(next) { + // next is suitable for passing to things that need a callback(err [, whatever]); + // it will result in this function being called again. + }, + function(err) { + // if next is called with a value in its first parameter, it will appear + // in here as 'err', and execution will stop. + } +); +``` + +--------------------------------------- + + +### waterfall(tasks, [callback]) + +Runs the `tasks` array of functions in series, each passing their results to the next in +the array. However, if any of the `tasks` pass an error to their own callback, the +next function is not executed, and the main `callback` is immediately called with +the error. + +__Arguments__ + +* `tasks` - An array of functions to run, each function is passed a + `callback(err, result1, result2, ...)` it must call on completion. The first + argument is an error (which can be `null`) and any further arguments will be + passed as arguments in order to the next task. +* `callback(err, [results])` - An optional callback to run once all the functions + have completed. This will be passed the results of the last task's callback. + + + +__Example__ + +```js +async.waterfall([ + function(callback) { + callback(null, 'one', 'two'); + }, + function(arg1, arg2, callback) { + // arg1 now equals 'one' and arg2 now equals 'two' + callback(null, 'three'); + }, + function(arg1, callback) { + // arg1 now equals 'three' + callback(null, 'done'); + } +], function (err, result) { + // result now equals 'done' +}); +``` + +--------------------------------------- + +### compose(fn1, fn2...) + +Creates a function which is a composition of the passed asynchronous +functions. Each function consumes the return value of the function that +follows. Composing functions `f()`, `g()`, and `h()` would produce the result of +`f(g(h()))`, only this version uses callbacks to obtain the return values. + +Each function is executed with the `this` binding of the composed function. + +__Arguments__ + +* `functions...` - the asynchronous functions to compose + + +__Example__ + +```js +function add1(n, callback) { + setTimeout(function () { + callback(null, n + 1); + }, 10); +} + +function mul3(n, callback) { + setTimeout(function () { + callback(null, n * 3); + }, 10); +} + +var add1mul3 = async.compose(mul3, add1); + +add1mul3(4, function (err, result) { + // result now equals 15 +}); +``` + +--------------------------------------- + +### seq(fn1, fn2...) + +Version of the compose function that is more natural to read. +Each function consumes the return value of the previous function. +It is the equivalent of [`compose`](#compose) with the arguments reversed. + +Each function is executed with the `this` binding of the composed function. + +__Arguments__ + +* `functions...` - the asynchronous functions to compose + + +__Example__ + +```js +// Requires lodash (or underscore), express3 and dresende's orm2. +// Part of an app, that fetches cats of the logged user. +// This example uses `seq` function to avoid overnesting and error +// handling clutter. +app.get('/cats', function(request, response) { + var User = request.models.User; + async.seq( + _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) + function(user, fn) { + user.getCats(fn); // 'getCats' has signature (callback(err, data)) + } + )(req.session.user_id, function (err, cats) { + if (err) { + console.error(err); + response.json({ status: 'error', message: err.message }); + } else { + response.json({ status: 'ok', message: 'Cats found', data: cats }); + } + }); +}); +``` + +--------------------------------------- + +### applyEach(fns, args..., callback) + +Applies the provided arguments to each function in the array, calling +`callback` after all functions have completed. If you only provide the first +argument, then it will return a function which lets you pass in the +arguments as if it were a single function call. + +__Arguments__ + +* `fns` - the asynchronous functions to all call with the same arguments +* `args...` - any number of separate arguments to pass to the function +* `callback` - the final argument should be the callback, called when all + functions have completed processing + + +__Example__ + +```js +async.applyEach([enableSearch, updateSchema], 'bucket', callback); + +// partial application example: +async.each( + buckets, + async.applyEach([enableSearch, updateSchema]), + callback +); +``` + +__Related__ + +* applyEachSeries(tasks, args..., [callback]) + +--------------------------------------- + + +### queue(worker, [concurrency]) + +Creates a `queue` object with the specified `concurrency`. Tasks added to the +`queue` are processed in parallel (up to the `concurrency` limit). If all +`worker`s are in progress, the task is queued until one becomes available. +Once a `worker` completes a `task`, that `task`'s callback is called. + +__Arguments__ + +* `worker(task, callback)` - An asynchronous function for processing a queued + task, which must call its `callback(err)` argument when finished, with an + optional `error` as an argument. If you want to handle errors from an individual task, pass a callback to `q.push()`. +* `concurrency` - An `integer` for determining how many `worker` functions should be + run in parallel. If omitted, the concurrency defaults to `1`. If the concurrency is `0`, an error is thrown. + +__Queue objects__ + +The `queue` object returned by this function has the following properties and +methods: + +* `length()` - a function returning the number of items waiting to be processed. +* `started` - a function returning whether or not any items have been pushed and processed by the queue +* `running()` - a function returning the number of items currently being processed. +* `workersList()` - a function returning the array of items currently being processed. +* `idle()` - a function returning false if there are items waiting or being processed, or true if not. +* `concurrency` - an integer for determining how many `worker` functions should be + run in parallel. This property can be changed after a `queue` is created to + alter the concurrency on-the-fly. +* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once + the `worker` has finished processing the task. Instead of a single task, a `tasks` array + can be submitted. The respective callback is used for every task in the list. +* `unshift(task, [callback])` - add a new task to the front of the `queue`. +* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit, + and further tasks will be queued. +* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`. +* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`. +* `paused` - a boolean for determining whether the queue is in a paused state +* `pause()` - a function that pauses the processing of tasks until `resume()` is called. +* `resume()` - a function that resumes the processing of queued tasks when the queue is paused. +* `kill()` - a function that removes the `drain` callback and empties remaining tasks from the queue forcing it to go idle. + +__Example__ + +```js +// create a queue object with concurrency 2 + +var q = async.queue(function (task, callback) { + console.log('hello ' + task.name); + callback(); +}, 2); + + +// assign a callback +q.drain = function() { + console.log('all items have been processed'); +} + +// add some items to the queue + +q.push({name: 'foo'}, function (err) { + console.log('finished processing foo'); +}); +q.push({name: 'bar'}, function (err) { + console.log('finished processing bar'); +}); + +// add some items to the queue (batch-wise) + +q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { + console.log('finished processing item'); +}); + +// add some items to the front of the queue + +q.unshift({name: 'bar'}, function (err) { + console.log('finished processing bar'); +}); +``` + + +--------------------------------------- + + +### priorityQueue(worker, concurrency) + +The same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects: + +* `push(task, priority, [callback])` - `priority` should be a number. If an array of + `tasks` is given, all tasks will be assigned the same priority. +* The `unshift` method was removed. + +--------------------------------------- + + +### cargo(worker, [payload]) + +Creates a `cargo` object with the specified payload. Tasks added to the +cargo will be processed altogether (up to the `payload` limit). If the +`worker` is in progress, the task is queued until it becomes available. Once +the `worker` has completed some tasks, each callback of those tasks is called. +Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966) for how `cargo` and `queue` work. + +While [queue](#queue) passes only one task to one of a group of workers +at a time, cargo passes an array of tasks to a single worker, repeating +when the worker is finished. + +__Arguments__ + +* `worker(tasks, callback)` - An asynchronous function for processing an array of + queued tasks, which must call its `callback(err)` argument when finished, with + an optional `err` argument. +* `payload` - An optional `integer` for determining how many tasks should be + processed per round; if omitted, the default is unlimited. + +__Cargo objects__ + +The `cargo` object returned by this function has the following properties and +methods: + +* `length()` - A function returning the number of items waiting to be processed. +* `payload` - An `integer` for determining how many tasks should be + process per round. This property can be changed after a `cargo` is created to + alter the payload on-the-fly. +* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called + once the `worker` has finished processing the task. Instead of a single task, an array of `tasks` + can be submitted. The respective callback is used for every task in the list. +* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued. +* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`. +* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`. +* `idle()`, `pause()`, `resume()`, `kill()` - cargo inherits all of the same methods and event calbacks as [`queue`](#queue) + +__Example__ + +```js +// create a cargo object with payload 2 + +var cargo = async.cargo(function (tasks, callback) { + for(var i=0; i +### auto(tasks, [concurrency], [callback]) + +Determines the best order for running the functions in `tasks`, based on their requirements. Each function can optionally depend on other functions being completed first, and each function is run as soon as its requirements are satisfied. + +If any of the functions pass an error to their callback, the `auto` sequence will stop. Further tasks will not execute (so any other functions depending on it will not run), and the main `callback` is immediately called with the error. Functions also receive an object containing the results of functions which have completed so far. + +Note, all functions are called with a `results` object as a second argument, +so it is unsafe to pass functions in the `tasks` object which cannot handle the +extra argument. + +For example, this snippet of code: + +```js +async.auto({ + readData: async.apply(fs.readFile, 'data.txt', 'utf-8') +}, callback); +``` + +will have the effect of calling `readFile` with the results object as the last +argument, which will fail: + +```js +fs.readFile('data.txt', 'utf-8', cb, {}); +``` + +Instead, wrap the call to `readFile` in a function which does not forward the +`results` object: + +```js +async.auto({ + readData: function(cb, results){ + fs.readFile('data.txt', 'utf-8', cb); + } +}, callback); +``` + +__Arguments__ + +* `tasks` - An object. Each of its properties is either a function or an array of + requirements, with the function itself the last item in the array. The object's key + of a property serves as the name of the task defined by that property, + i.e. can be used when specifying requirements for other tasks. + The function receives two arguments: (1) a `callback(err, result)` which must be + called when finished, passing an `error` (which can be `null`) and the result of + the function's execution, and (2) a `results` object, containing the results of + the previously executed functions. +* `concurrency` - An optional `integer` for determining the maximum number of tasks that can be run in parallel. By default, as many as possible. +* `callback(err, results)` - An optional callback which is called when all the + tasks have been completed. It receives the `err` argument if any `tasks` + pass an error to their callback. Results are always returned; however, if + an error occurs, no further `tasks` will be performed, and the results + object will only contain partial results. + + +__Example__ + +```js +async.auto({ + get_data: function(callback){ + console.log('in get_data'); + // async code to get some data + callback(null, 'data', 'converted to array'); + }, + make_folder: function(callback){ + console.log('in make_folder'); + // async code to create a directory to store a file in + // this is run at the same time as getting the data + callback(null, 'folder'); + }, + write_file: ['get_data', 'make_folder', function(callback, results){ + console.log('in write_file', JSON.stringify(results)); + // once there is some data and the directory exists, + // write the data to a file in the directory + callback(null, 'filename'); + }], + email_link: ['write_file', function(callback, results){ + console.log('in email_link', JSON.stringify(results)); + // once the file is written let's email a link to it... + // results.write_file contains the filename returned by write_file. + callback(null, {'file':results.write_file, 'email':'user@example.com'}); + }] +}, function(err, results) { + console.log('err = ', err); + console.log('results = ', results); +}); +``` + +This is a fairly trivial example, but to do this using the basic parallel and +series functions would look like this: + +```js +async.parallel([ + function(callback){ + console.log('in get_data'); + // async code to get some data + callback(null, 'data', 'converted to array'); + }, + function(callback){ + console.log('in make_folder'); + // async code to create a directory to store a file in + // this is run at the same time as getting the data + callback(null, 'folder'); + } +], +function(err, results){ + async.series([ + function(callback){ + console.log('in write_file', JSON.stringify(results)); + // once there is some data and the directory exists, + // write the data to a file in the directory + results.push('filename'); + callback(null); + }, + function(callback){ + console.log('in email_link', JSON.stringify(results)); + // once the file is written let's email a link to it... + callback(null, {'file':results.pop(), 'email':'user@example.com'}); + } + ]); +}); +``` + +For a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding +new tasks much easier (and the code more readable). + + +--------------------------------------- + + +### retry([opts = {times: 5, interval: 0}| 5], task, [callback]) + +Attempts to get a successful response from `task` no more than `times` times before +returning an error. If the task is successful, the `callback` will be passed the result +of the successful task. If all attempts fail, the callback will be passed the error and +result (if any) of the final attempt. + +__Arguments__ + +* `opts` - Can be either an object with `times` and `interval` or a number. `times` is how many attempts should be made before giving up. `interval` is how long to wait inbetween attempts. Defaults to {times: 5, interval: 0} + * if a number is passed in it sets `times` only (with `interval` defaulting to 0). +* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)` + which must be called when finished, passing `err` (which can be `null`) and the `result` of + the function's execution, and (2) a `results` object, containing the results of + the previously executed functions (if nested inside another control flow). +* `callback(err, results)` - An optional callback which is called when the + task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`. + +The [`retry`](#retry) function can be used as a stand-alone control flow by passing a +callback, as shown below: + +```js +async.retry(3, apiMethod, function(err, result) { + // do something with the result +}); +``` + +```js +async.retry({times: 3, interval: 200}, apiMethod, function(err, result) { + // do something with the result +}); +``` + +It can also be embedded within other control flow functions to retry individual methods +that are not as reliable, like this: + +```js +async.auto({ + users: api.getUsers.bind(api), + payments: async.retry(3, api.getPayments.bind(api)) +}, function(err, results) { + // do something with the results +}); +``` + + +--------------------------------------- + + +### iterator(tasks) + +Creates an iterator function which calls the next function in the `tasks` array, +returning a continuation to call the next one after that. It's also possible to +“peek” at the next iterator with `iterator.next()`. + +This function is used internally by the `async` module, but can be useful when +you want to manually control the flow of functions in series. + +__Arguments__ + +* `tasks` - An array of functions to run. + +__Example__ + +```js +var iterator = async.iterator([ + function(){ sys.p('one'); }, + function(){ sys.p('two'); }, + function(){ sys.p('three'); } +]); + +node> var iterator2 = iterator(); +'one' +node> var iterator3 = iterator2(); +'two' +node> iterator3(); +'three' +node> var nextfn = iterator2.next(); +node> nextfn(); +'three' +``` + +--------------------------------------- + + +### apply(function, arguments..) + +Creates a continuation function with some arguments already applied. + +Useful as a shorthand when combined with other control flow functions. Any arguments +passed to the returned function are added to the arguments originally passed +to apply. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to automatically apply when the + continuation is called. + +__Example__ + +```js +// using apply + +async.parallel([ + async.apply(fs.writeFile, 'testfile1', 'test1'), + async.apply(fs.writeFile, 'testfile2', 'test2'), +]); + + +// the same process without using apply + +async.parallel([ + function(callback){ + fs.writeFile('testfile1', 'test1', callback); + }, + function(callback){ + fs.writeFile('testfile2', 'test2', callback); + } +]); +``` + +It's possible to pass any number of additional arguments when calling the +continuation: + +```js +node> var fn = async.apply(sys.puts, 'one'); +node> fn('two', 'three'); +one +two +three +``` + +--------------------------------------- + + +### nextTick(callback), setImmediate(callback) + +Calls `callback` on a later loop around the event loop. In Node.js this just +calls `process.nextTick`; in the browser it falls back to `setImmediate(callback)` +if available, otherwise `setTimeout(callback, 0)`, which means other higher priority +events may precede the execution of `callback`. + +This is used internally for browser-compatibility purposes. + +__Arguments__ + +* `callback` - The function to call on a later loop around the event loop. + +__Example__ + +```js +var call_order = []; +async.nextTick(function(){ + call_order.push('two'); + // call_order now equals ['one','two'] +}); +call_order.push('one') +``` + + +### times(n, iterator, [callback]) + +Calls the `iterator` function `n` times, and accumulates results in the same manner +you would use with [`map`](#map). + +__Arguments__ + +* `n` - The number of times to run the function. +* `iterator` - The function to call `n` times. +* `callback` - see [`map`](#map) + +__Example__ + +```js +// Pretend this is some complicated async factory +var createUser = function(id, callback) { + callback(null, { + id: 'user' + id + }) +} +// generate 5 users +async.times(5, function(n, next){ + createUser(n, function(err, user) { + next(err, user) + }) +}, function(err, users) { + // we should now have 5 users +}); +``` + +__Related__ + +* timesSeries(n, iterator, [callback]) +* timesLimit(n, limit, iterator, [callback]) + + +## Utils + + +### memoize(fn, [hasher]) + +Caches the results of an `async` function. When creating a hash to store function +results against, the callback is omitted from the hash and an optional hash +function can be used. + +If no hash function is specified, the first argument is used as a hash key, which may work reasonably if it is a string or a data type that converts to a distinct string. Note that objects and arrays will not behave reasonably. Neither will cases where the other arguments are significant. In such cases, specify your own hash function. + +The cache of results is exposed as the `memo` property of the function returned +by `memoize`. + +__Arguments__ + +* `fn` - The function to proxy and cache results from. +* `hasher` - An optional function for generating a custom hash for storing + results. It has all the arguments applied to it apart from the callback, and + must be synchronous. + +__Example__ + +```js +var slow_fn = function (name, callback) { + // do something + callback(null, result); +}; +var fn = async.memoize(slow_fn); + +// fn can now be used as if it were slow_fn +fn('some name', function () { + // callback +}); +``` + + +### unmemoize(fn) + +Undoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized +form. Handy for testing. + +__Arguments__ + +* `fn` - the memoized function + +--------------------------------------- + + +### ensureAsync(fn) + +Wrap an async function and ensure it calls its callback on a later tick of the event loop. If the function already calls its callback on a next tick, no extra deferral is added. This is useful for preventing stack overflows (`RangeError: Maximum call stack size exceeded`) and generally keeping [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony) contained. + +__Arguments__ + +* `fn` - an async function, one that expects a node-style callback as its last argument + +Returns a wrapped function with the exact same call signature as the function passed in. + +__Example__ + +```js +function sometimesAsync(arg, callback) { + if (cache[arg]) { + return callback(null, cache[arg]); // this would be synchronous!! + } else { + doSomeIO(arg, callback); // this IO would be asynchronous + } +} + +// this has a risk of stack overflows if many results are cached in a row +async.mapSeries(args, sometimesAsync, done); + +// this will defer sometimesAsync's callback if necessary, +// preventing stack overflows +async.mapSeries(args, async.ensureAsync(sometimesAsync), done); + +``` + +--------------------------------------- + + +### constant(values...) + +Returns a function that when called, calls-back with the values provided. Useful as the first function in a `waterfall`, or for plugging values in to `auto`. + +__Example__ + +```js +async.waterfall([ + async.constant(42), + function (value, next) { + // value === 42 + }, + //... +], callback); + +async.waterfall([ + async.constant(filename, "utf8"), + fs.readFile, + function (fileData, next) { + //... + } + //... +], callback); + +async.auto({ + hostname: async.constant("https://server.net/"), + port: findFreePort, + launchServer: ["hostname", "port", function (cb, options) { + startServer(options, cb); + }], + //... +}, callback); + +``` + +--------------------------------------- + + + +### asyncify(func) + +__Alias:__ `wrapSync` + +Take a sync function and make it async, passing its return value to a callback. This is useful for plugging sync functions into a waterfall, series, or other async functions. Any arguments passed to the generated function will be passed to the wrapped function (except for the final callback argument). Errors thrown will be passed to the callback. + +__Example__ + +```js +async.waterfall([ + async.apply(fs.readFile, filename, "utf8"), + async.asyncify(JSON.parse), + function (data, next) { + // data is the result of parsing the text. + // If there was a parsing error, it would have been caught. + } +], callback) +``` + +--------------------------------------- + + +### log(function, arguments) + +Logs the result of an `async` function to the `console`. Only works in Node.js or +in browsers that support `console.log` and `console.error` (such as FF and Chrome). +If multiple arguments are returned from the async function, `console.log` is +called on each argument in order. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to apply to the function. + +__Example__ + +```js +var hello = function(name, callback){ + setTimeout(function(){ + callback(null, 'hello ' + name); + }, 1000); +}; +``` +```js +node> async.log(hello, 'world'); +'hello world' +``` + +--------------------------------------- + + +### dir(function, arguments) + +Logs the result of an `async` function to the `console` using `console.dir` to +display the properties of the resulting object. Only works in Node.js or +in browsers that support `console.dir` and `console.error` (such as FF and Chrome). +If multiple arguments are returned from the async function, `console.dir` is +called on each argument in order. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to apply to the function. + +__Example__ + +```js +var hello = function(name, callback){ + setTimeout(function(){ + callback(null, {hello: name}); + }, 1000); +}; +``` +```js +node> async.dir(hello, 'world'); +{hello: 'world'} +``` + +--------------------------------------- + + +### noConflict() + +Changes the value of `async` back to its original value, returning a reference to the +`async` object. diff --git a/packages/NoGit.0.1.0/node_modules/globby/node_modules/async/dist/async.js b/packages/NoGit.0.1.0/node_modules/globby/node_modules/async/dist/async.js new file mode 100644 index 0000000..8889344 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/globby/node_modules/async/dist/async.js @@ -0,0 +1,1260 @@ +/*! + * async + * https://github.com/caolan/async + * + * Copyright 2010-2014 Caolan McMahon + * Released under the MIT license + */ +(function () { + + var async = {}; + function noop() {} + function identity(v) { + return v; + } + function toBool(v) { + return !!v; + } + function notId(v) { + return !v; + } + + // global on the server, window in the browser + var previous_async; + + // Establish the root object, `window` (`self`) in the browser, `global` + // on the server, or `this` in some virtual machines. We use `self` + // instead of `window` for `WebWorker` support. + var root = typeof self === 'object' && self.self === self && self || + typeof global === 'object' && global.global === global && global || + this; + + if (root != null) { + previous_async = root.async; + } + + async.noConflict = function () { + root.async = previous_async; + return async; + }; + + function only_once(fn) { + return function() { + if (fn === null) throw new Error("Callback was already called."); + fn.apply(this, arguments); + fn = null; + }; + } + + function _once(fn) { + return function() { + if (fn === null) return; + fn.apply(this, arguments); + fn = null; + }; + } + + //// cross-browser compatiblity functions //// + + var _toString = Object.prototype.toString; + + var _isArray = Array.isArray || function (obj) { + return _toString.call(obj) === '[object Array]'; + }; + + // Ported from underscore.js isObject + var _isObject = function(obj) { + var type = typeof obj; + return type === 'function' || type === 'object' && !!obj; + }; + + function _isArrayLike(arr) { + return _isArray(arr) || ( + // has a positive integer length property + typeof arr.length === "number" && + arr.length >= 0 && + arr.length % 1 === 0 + ); + } + + function _arrayEach(arr, iterator) { + var index = -1, + length = arr.length; + + while (++index < length) { + iterator(arr[index], index, arr); + } + } + + function _map(arr, iterator) { + var index = -1, + length = arr.length, + result = Array(length); + + while (++index < length) { + result[index] = iterator(arr[index], index, arr); + } + return result; + } + + function _range(count) { + return _map(Array(count), function (v, i) { return i; }); + } + + function _reduce(arr, iterator, memo) { + _arrayEach(arr, function (x, i, a) { + memo = iterator(memo, x, i, a); + }); + return memo; + } + + function _forEachOf(object, iterator) { + _arrayEach(_keys(object), function (key) { + iterator(object[key], key); + }); + } + + function _indexOf(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] === item) return i; + } + return -1; + } + + var _keys = Object.keys || function (obj) { + var keys = []; + for (var k in obj) { + if (obj.hasOwnProperty(k)) { + keys.push(k); + } + } + return keys; + }; + + function _keyIterator(coll) { + var i = -1; + var len; + var keys; + if (_isArrayLike(coll)) { + len = coll.length; + return function next() { + i++; + return i < len ? i : null; + }; + } else { + keys = _keys(coll); + len = keys.length; + return function next() { + i++; + return i < len ? keys[i] : null; + }; + } + } + + // Similar to ES6's rest param (http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html) + // This accumulates the arguments passed into an array, after a given index. + // From underscore.js (https://github.com/jashkenas/underscore/pull/2140). + function _restParam(func, startIndex) { + startIndex = startIndex == null ? func.length - 1 : +startIndex; + return function() { + var length = Math.max(arguments.length - startIndex, 0); + var rest = Array(length); + for (var index = 0; index < length; index++) { + rest[index] = arguments[index + startIndex]; + } + switch (startIndex) { + case 0: return func.call(this, rest); + case 1: return func.call(this, arguments[0], rest); + } + // Currently unused but handle cases outside of the switch statement: + // var args = Array(startIndex + 1); + // for (index = 0; index < startIndex; index++) { + // args[index] = arguments[index]; + // } + // args[startIndex] = rest; + // return func.apply(this, args); + }; + } + + function _withoutIndex(iterator) { + return function (value, index, callback) { + return iterator(value, callback); + }; + } + + //// exported async module functions //// + + //// nextTick implementation with browser-compatible fallback //// + + // capture the global reference to guard against fakeTimer mocks + var _setImmediate = typeof setImmediate === 'function' && setImmediate; + + var _delay = _setImmediate ? function(fn) { + // not a direct alias for IE10 compatibility + _setImmediate(fn); + } : function(fn) { + setTimeout(fn, 0); + }; + + if (typeof process === 'object' && typeof process.nextTick === 'function') { + async.nextTick = process.nextTick; + } else { + async.nextTick = _delay; + } + async.setImmediate = _setImmediate ? _delay : async.nextTick; + + + async.forEach = + async.each = function (arr, iterator, callback) { + return async.eachOf(arr, _withoutIndex(iterator), callback); + }; + + async.forEachSeries = + async.eachSeries = function (arr, iterator, callback) { + return async.eachOfSeries(arr, _withoutIndex(iterator), callback); + }; + + + async.forEachLimit = + async.eachLimit = function (arr, limit, iterator, callback) { + return _eachOfLimit(limit)(arr, _withoutIndex(iterator), callback); + }; + + async.forEachOf = + async.eachOf = function (object, iterator, callback) { + callback = _once(callback || noop); + object = object || []; + + var iter = _keyIterator(object); + var key, completed = 0; + + while ((key = iter()) != null) { + completed += 1; + iterator(object[key], key, only_once(done)); + } + + if (completed === 0) callback(null); + + function done(err) { + completed--; + if (err) { + callback(err); + } + // Check key is null in case iterator isn't exhausted + // and done resolved synchronously. + else if (key === null && completed <= 0) { + callback(null); + } + } + }; + + async.forEachOfSeries = + async.eachOfSeries = function (obj, iterator, callback) { + callback = _once(callback || noop); + obj = obj || []; + var nextKey = _keyIterator(obj); + var key = nextKey(); + function iterate() { + var sync = true; + if (key === null) { + return callback(null); + } + iterator(obj[key], key, only_once(function (err) { + if (err) { + callback(err); + } + else { + key = nextKey(); + if (key === null) { + return callback(null); + } else { + if (sync) { + async.setImmediate(iterate); + } else { + iterate(); + } + } + } + })); + sync = false; + } + iterate(); + }; + + + + async.forEachOfLimit = + async.eachOfLimit = function (obj, limit, iterator, callback) { + _eachOfLimit(limit)(obj, iterator, callback); + }; + + function _eachOfLimit(limit) { + + return function (obj, iterator, callback) { + callback = _once(callback || noop); + obj = obj || []; + var nextKey = _keyIterator(obj); + if (limit <= 0) { + return callback(null); + } + var done = false; + var running = 0; + var errored = false; + + (function replenish () { + if (done && running <= 0) { + return callback(null); + } + + while (running < limit && !errored) { + var key = nextKey(); + if (key === null) { + done = true; + if (running <= 0) { + callback(null); + } + return; + } + running += 1; + iterator(obj[key], key, only_once(function (err) { + running -= 1; + if (err) { + callback(err); + errored = true; + } + else { + replenish(); + } + })); + } + })(); + }; + } + + + function doParallel(fn) { + return function (obj, iterator, callback) { + return fn(async.eachOf, obj, iterator, callback); + }; + } + function doParallelLimit(fn) { + return function (obj, limit, iterator, callback) { + return fn(_eachOfLimit(limit), obj, iterator, callback); + }; + } + function doSeries(fn) { + return function (obj, iterator, callback) { + return fn(async.eachOfSeries, obj, iterator, callback); + }; + } + + function _asyncMap(eachfn, arr, iterator, callback) { + callback = _once(callback || noop); + arr = arr || []; + var results = _isArrayLike(arr) ? [] : {}; + eachfn(arr, function (value, index, callback) { + iterator(value, function (err, v) { + results[index] = v; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + + async.map = doParallel(_asyncMap); + async.mapSeries = doSeries(_asyncMap); + async.mapLimit = doParallelLimit(_asyncMap); + + // reduce only has a series version, as doing reduce in parallel won't + // work in many situations. + async.inject = + async.foldl = + async.reduce = function (arr, memo, iterator, callback) { + async.eachOfSeries(arr, function (x, i, callback) { + iterator(memo, x, function (err, v) { + memo = v; + callback(err); + }); + }, function (err) { + callback(err, memo); + }); + }; + + async.foldr = + async.reduceRight = function (arr, memo, iterator, callback) { + var reversed = _map(arr, identity).reverse(); + async.reduce(reversed, memo, iterator, callback); + }; + + async.transform = function (arr, memo, iterator, callback) { + if (arguments.length === 3) { + callback = iterator; + iterator = memo; + memo = _isArray(arr) ? [] : {}; + } + + async.eachOf(arr, function(v, k, cb) { + iterator(memo, v, k, cb); + }, function(err) { + callback(err, memo); + }); + }; + + function _filter(eachfn, arr, iterator, callback) { + var results = []; + eachfn(arr, function (x, index, callback) { + iterator(x, function (v) { + if (v) { + results.push({index: index, value: x}); + } + callback(); + }); + }, function () { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + } + + async.select = + async.filter = doParallel(_filter); + + async.selectLimit = + async.filterLimit = doParallelLimit(_filter); + + async.selectSeries = + async.filterSeries = doSeries(_filter); + + function _reject(eachfn, arr, iterator, callback) { + _filter(eachfn, arr, function(value, cb) { + iterator(value, function(v) { + cb(!v); + }); + }, callback); + } + async.reject = doParallel(_reject); + async.rejectLimit = doParallelLimit(_reject); + async.rejectSeries = doSeries(_reject); + + function _createTester(eachfn, check, getResult) { + return function(arr, limit, iterator, cb) { + function done() { + if (cb) cb(getResult(false, void 0)); + } + function iteratee(x, _, callback) { + if (!cb) return callback(); + iterator(x, function (v) { + if (cb && check(v)) { + cb(getResult(true, x)); + cb = iterator = false; + } + callback(); + }); + } + if (arguments.length > 3) { + eachfn(arr, limit, iteratee, done); + } else { + cb = iterator; + iterator = limit; + eachfn(arr, iteratee, done); + } + }; + } + + async.any = + async.some = _createTester(async.eachOf, toBool, identity); + + async.someLimit = _createTester(async.eachOfLimit, toBool, identity); + + async.all = + async.every = _createTester(async.eachOf, notId, notId); + + async.everyLimit = _createTester(async.eachOfLimit, notId, notId); + + function _findGetResult(v, x) { + return x; + } + async.detect = _createTester(async.eachOf, identity, _findGetResult); + async.detectSeries = _createTester(async.eachOfSeries, identity, _findGetResult); + async.detectLimit = _createTester(async.eachOfLimit, identity, _findGetResult); + + async.sortBy = function (arr, iterator, callback) { + async.map(arr, function (x, callback) { + iterator(x, function (err, criteria) { + if (err) { + callback(err); + } + else { + callback(null, {value: x, criteria: criteria}); + } + }); + }, function (err, results) { + if (err) { + return callback(err); + } + else { + callback(null, _map(results.sort(comparator), function (x) { + return x.value; + })); + } + + }); + + function comparator(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + } + }; + + async.auto = function (tasks, concurrency, callback) { + if (!callback) { + // concurrency is optional, shift the args. + callback = concurrency; + concurrency = null; + } + callback = _once(callback || noop); + var keys = _keys(tasks); + var remainingTasks = keys.length; + if (!remainingTasks) { + return callback(null); + } + if (!concurrency) { + concurrency = remainingTasks; + } + + var results = {}; + var runningTasks = 0; + + var listeners = []; + function addListener(fn) { + listeners.unshift(fn); + } + function removeListener(fn) { + var idx = _indexOf(listeners, fn); + if (idx >= 0) listeners.splice(idx, 1); + } + function taskComplete() { + remainingTasks--; + _arrayEach(listeners.slice(0), function (fn) { + fn(); + }); + } + + addListener(function () { + if (!remainingTasks) { + callback(null, results); + } + }); + + _arrayEach(keys, function (k) { + var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]]; + var taskCallback = _restParam(function(err, args) { + runningTasks--; + if (args.length <= 1) { + args = args[0]; + } + if (err) { + var safeResults = {}; + _forEachOf(results, function(val, rkey) { + safeResults[rkey] = val; + }); + safeResults[k] = args; + callback(err, safeResults); + } + else { + results[k] = args; + async.setImmediate(taskComplete); + } + }); + var requires = task.slice(0, task.length - 1); + // prevent dead-locks + var len = requires.length; + var dep; + while (len--) { + if (!(dep = tasks[requires[len]])) { + throw new Error('Has inexistant dependency'); + } + if (_isArray(dep) && _indexOf(dep, k) >= 0) { + throw new Error('Has cyclic dependencies'); + } + } + function ready() { + return runningTasks < concurrency && _reduce(requires, function (a, x) { + return (a && results.hasOwnProperty(x)); + }, true) && !results.hasOwnProperty(k); + } + if (ready()) { + runningTasks++; + task[task.length - 1](taskCallback, results); + } + else { + addListener(listener); + } + function listener() { + if (ready()) { + runningTasks++; + removeListener(listener); + task[task.length - 1](taskCallback, results); + } + } + }); + }; + + + + async.retry = function(times, task, callback) { + var DEFAULT_TIMES = 5; + var DEFAULT_INTERVAL = 0; + + var attempts = []; + + var opts = { + times: DEFAULT_TIMES, + interval: DEFAULT_INTERVAL + }; + + function parseTimes(acc, t){ + if(typeof t === 'number'){ + acc.times = parseInt(t, 10) || DEFAULT_TIMES; + } else if(typeof t === 'object'){ + acc.times = parseInt(t.times, 10) || DEFAULT_TIMES; + acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL; + } else { + throw new Error('Unsupported argument type for \'times\': ' + typeof t); + } + } + + var length = arguments.length; + if (length < 1 || length > 3) { + throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)'); + } else if (length <= 2 && typeof times === 'function') { + callback = task; + task = times; + } + if (typeof times !== 'function') { + parseTimes(opts, times); + } + opts.callback = callback; + opts.task = task; + + function wrappedTask(wrappedCallback, wrappedResults) { + function retryAttempt(task, finalAttempt) { + return function(seriesCallback) { + task(function(err, result){ + seriesCallback(!err || finalAttempt, {err: err, result: result}); + }, wrappedResults); + }; + } + + function retryInterval(interval){ + return function(seriesCallback){ + setTimeout(function(){ + seriesCallback(null); + }, interval); + }; + } + + while (opts.times) { + + var finalAttempt = !(opts.times-=1); + attempts.push(retryAttempt(opts.task, finalAttempt)); + if(!finalAttempt && opts.interval > 0){ + attempts.push(retryInterval(opts.interval)); + } + } + + async.series(attempts, function(done, data){ + data = data[data.length - 1]; + (wrappedCallback || opts.callback)(data.err, data.result); + }); + } + + // If a callback is passed, run this as a controll flow + return opts.callback ? wrappedTask() : wrappedTask; + }; + + async.waterfall = function (tasks, callback) { + callback = _once(callback || noop); + if (!_isArray(tasks)) { + var err = new Error('First argument to waterfall must be an array of functions'); + return callback(err); + } + if (!tasks.length) { + return callback(); + } + function wrapIterator(iterator) { + return _restParam(function (err, args) { + if (err) { + callback.apply(null, [err].concat(args)); + } + else { + var next = iterator.next(); + if (next) { + args.push(wrapIterator(next)); + } + else { + args.push(callback); + } + ensureAsync(iterator).apply(null, args); + } + }); + } + wrapIterator(async.iterator(tasks))(); + }; + + function _parallel(eachfn, tasks, callback) { + callback = callback || noop; + var results = _isArrayLike(tasks) ? [] : {}; + + eachfn(tasks, function (task, key, callback) { + task(_restParam(function (err, args) { + if (args.length <= 1) { + args = args[0]; + } + results[key] = args; + callback(err); + })); + }, function (err) { + callback(err, results); + }); + } + + async.parallel = function (tasks, callback) { + _parallel(async.eachOf, tasks, callback); + }; + + async.parallelLimit = function(tasks, limit, callback) { + _parallel(_eachOfLimit(limit), tasks, callback); + }; + + async.series = function(tasks, callback) { + _parallel(async.eachOfSeries, tasks, callback); + }; + + async.iterator = function (tasks) { + function makeCallback(index) { + function fn() { + if (tasks.length) { + tasks[index].apply(null, arguments); + } + return fn.next(); + } + fn.next = function () { + return (index < tasks.length - 1) ? makeCallback(index + 1): null; + }; + return fn; + } + return makeCallback(0); + }; + + async.apply = _restParam(function (fn, args) { + return _restParam(function (callArgs) { + return fn.apply( + null, args.concat(callArgs) + ); + }); + }); + + function _concat(eachfn, arr, fn, callback) { + var result = []; + eachfn(arr, function (x, index, cb) { + fn(x, function (err, y) { + result = result.concat(y || []); + cb(err); + }); + }, function (err) { + callback(err, result); + }); + } + async.concat = doParallel(_concat); + async.concatSeries = doSeries(_concat); + + async.whilst = function (test, iterator, callback) { + callback = callback || noop; + if (test()) { + var next = _restParam(function(err, args) { + if (err) { + callback(err); + } else if (test.apply(this, args)) { + iterator(next); + } else { + callback(null); + } + }); + iterator(next); + } else { + callback(null); + } + }; + + async.doWhilst = function (iterator, test, callback) { + var calls = 0; + return async.whilst(function() { + return ++calls <= 1 || test.apply(this, arguments); + }, iterator, callback); + }; + + async.until = function (test, iterator, callback) { + return async.whilst(function() { + return !test.apply(this, arguments); + }, iterator, callback); + }; + + async.doUntil = function (iterator, test, callback) { + return async.doWhilst(iterator, function() { + return !test.apply(this, arguments); + }, callback); + }; + + async.during = function (test, iterator, callback) { + callback = callback || noop; + + var next = _restParam(function(err, args) { + if (err) { + callback(err); + } else { + args.push(check); + test.apply(this, args); + } + }); + + var check = function(err, truth) { + if (err) { + callback(err); + } else if (truth) { + iterator(next); + } else { + callback(null); + } + }; + + test(check); + }; + + async.doDuring = function (iterator, test, callback) { + var calls = 0; + async.during(function(next) { + if (calls++ < 1) { + next(null, true); + } else { + test.apply(this, arguments); + } + }, iterator, callback); + }; + + function _queue(worker, concurrency, payload) { + if (concurrency == null) { + concurrency = 1; + } + else if(concurrency === 0) { + throw new Error('Concurrency must not be zero'); + } + function _insert(q, data, pos, callback) { + if (callback != null && typeof callback !== "function") { + throw new Error("task callback must be a function"); + } + q.started = true; + if (!_isArray(data)) { + data = [data]; + } + if(data.length === 0 && q.idle()) { + // call drain immediately if there are no tasks + return async.setImmediate(function() { + q.drain(); + }); + } + _arrayEach(data, function(task) { + var item = { + data: task, + callback: callback || noop + }; + + if (pos) { + q.tasks.unshift(item); + } else { + q.tasks.push(item); + } + + if (q.tasks.length === q.concurrency) { + q.saturated(); + } + }); + async.setImmediate(q.process); + } + function _next(q, tasks) { + return function(){ + workers -= 1; + + var removed = false; + var args = arguments; + _arrayEach(tasks, function (task) { + _arrayEach(workersList, function (worker, index) { + if (worker === task && !removed) { + workersList.splice(index, 1); + removed = true; + } + }); + + task.callback.apply(task, args); + }); + if (q.tasks.length + workers === 0) { + q.drain(); + } + q.process(); + }; + } + + var workers = 0; + var workersList = []; + var q = { + tasks: [], + concurrency: concurrency, + payload: payload, + saturated: noop, + empty: noop, + drain: noop, + started: false, + paused: false, + push: function (data, callback) { + _insert(q, data, false, callback); + }, + kill: function () { + q.drain = noop; + q.tasks = []; + }, + unshift: function (data, callback) { + _insert(q, data, true, callback); + }, + process: function () { + if (!q.paused && workers < q.concurrency && q.tasks.length) { + while(workers < q.concurrency && q.tasks.length){ + var tasks = q.payload ? + q.tasks.splice(0, q.payload) : + q.tasks.splice(0, q.tasks.length); + + var data = _map(tasks, function (task) { + return task.data; + }); + + if (q.tasks.length === 0) { + q.empty(); + } + workers += 1; + workersList.push(tasks[0]); + var cb = only_once(_next(q, tasks)); + worker(data, cb); + } + } + }, + length: function () { + return q.tasks.length; + }, + running: function () { + return workers; + }, + workersList: function () { + return workersList; + }, + idle: function() { + return q.tasks.length + workers === 0; + }, + pause: function () { + q.paused = true; + }, + resume: function () { + if (q.paused === false) { return; } + q.paused = false; + var resumeCount = Math.min(q.concurrency, q.tasks.length); + // Need to call q.process once per concurrent + // worker to preserve full concurrency after pause + for (var w = 1; w <= resumeCount; w++) { + async.setImmediate(q.process); + } + } + }; + return q; + } + + async.queue = function (worker, concurrency) { + var q = _queue(function (items, cb) { + worker(items[0], cb); + }, concurrency, 1); + + return q; + }; + + async.priorityQueue = function (worker, concurrency) { + + function _compareTasks(a, b){ + return a.priority - b.priority; + } + + function _binarySearch(sequence, item, compare) { + var beg = -1, + end = sequence.length - 1; + while (beg < end) { + var mid = beg + ((end - beg + 1) >>> 1); + if (compare(item, sequence[mid]) >= 0) { + beg = mid; + } else { + end = mid - 1; + } + } + return beg; + } + + function _insert(q, data, priority, callback) { + if (callback != null && typeof callback !== "function") { + throw new Error("task callback must be a function"); + } + q.started = true; + if (!_isArray(data)) { + data = [data]; + } + if(data.length === 0) { + // call drain immediately if there are no tasks + return async.setImmediate(function() { + q.drain(); + }); + } + _arrayEach(data, function(task) { + var item = { + data: task, + priority: priority, + callback: typeof callback === 'function' ? callback : noop + }; + + q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item); + + if (q.tasks.length === q.concurrency) { + q.saturated(); + } + async.setImmediate(q.process); + }); + } + + // Start with a normal queue + var q = async.queue(worker, concurrency); + + // Override push to accept second parameter representing priority + q.push = function (data, priority, callback) { + _insert(q, data, priority, callback); + }; + + // Remove unshift function + delete q.unshift; + + return q; + }; + + async.cargo = function (worker, payload) { + return _queue(worker, 1, payload); + }; + + function _console_fn(name) { + return _restParam(function (fn, args) { + fn.apply(null, args.concat([_restParam(function (err, args) { + if (typeof console === 'object') { + if (err) { + if (console.error) { + console.error(err); + } + } + else if (console[name]) { + _arrayEach(args, function (x) { + console[name](x); + }); + } + } + })])); + }); + } + async.log = _console_fn('log'); + async.dir = _console_fn('dir'); + /*async.info = _console_fn('info'); + async.warn = _console_fn('warn'); + async.error = _console_fn('error');*/ + + async.memoize = function (fn, hasher) { + var memo = {}; + var queues = {}; + hasher = hasher || identity; + var memoized = _restParam(function memoized(args) { + var callback = args.pop(); + var key = hasher.apply(null, args); + if (key in memo) { + async.setImmediate(function () { + callback.apply(null, memo[key]); + }); + } + else if (key in queues) { + queues[key].push(callback); + } + else { + queues[key] = [callback]; + fn.apply(null, args.concat([_restParam(function (args) { + memo[key] = args; + var q = queues[key]; + delete queues[key]; + for (var i = 0, l = q.length; i < l; i++) { + q[i].apply(null, args); + } + })])); + } + }); + memoized.memo = memo; + memoized.unmemoized = fn; + return memoized; + }; + + async.unmemoize = function (fn) { + return function () { + return (fn.unmemoized || fn).apply(null, arguments); + }; + }; + + function _times(mapper) { + return function (count, iterator, callback) { + mapper(_range(count), iterator, callback); + }; + } + + async.times = _times(async.map); + async.timesSeries = _times(async.mapSeries); + async.timesLimit = function (count, limit, iterator, callback) { + return async.mapLimit(_range(count), limit, iterator, callback); + }; + + async.seq = function (/* functions... */) { + var fns = arguments; + return _restParam(function (args) { + var that = this; + + var callback = args[args.length - 1]; + if (typeof callback == 'function') { + args.pop(); + } else { + callback = noop; + } + + async.reduce(fns, args, function (newargs, fn, cb) { + fn.apply(that, newargs.concat([_restParam(function (err, nextargs) { + cb(err, nextargs); + })])); + }, + function (err, results) { + callback.apply(that, [err].concat(results)); + }); + }); + }; + + async.compose = function (/* functions... */) { + return async.seq.apply(null, Array.prototype.reverse.call(arguments)); + }; + + + function _applyEach(eachfn) { + return _restParam(function(fns, args) { + var go = _restParam(function(args) { + var that = this; + var callback = args.pop(); + return eachfn(fns, function (fn, _, cb) { + fn.apply(that, args.concat([cb])); + }, + callback); + }); + if (args.length) { + return go.apply(this, args); + } + else { + return go; + } + }); + } + + async.applyEach = _applyEach(async.eachOf); + async.applyEachSeries = _applyEach(async.eachOfSeries); + + + async.forever = function (fn, callback) { + var done = only_once(callback || noop); + var task = ensureAsync(fn); + function next(err) { + if (err) { + return done(err); + } + task(next); + } + next(); + }; + + function ensureAsync(fn) { + return _restParam(function (args) { + var callback = args.pop(); + args.push(function () { + var innerArgs = arguments; + if (sync) { + async.setImmediate(function () { + callback.apply(null, innerArgs); + }); + } else { + callback.apply(null, innerArgs); + } + }); + var sync = true; + fn.apply(this, args); + sync = false; + }); + } + + async.ensureAsync = ensureAsync; + + async.constant = _restParam(function(values) { + var args = [null].concat(values); + return function (callback) { + return callback.apply(this, args); + }; + }); + + async.wrapSync = + async.asyncify = function asyncify(func) { + return _restParam(function (args) { + var callback = args.pop(); + var result; + try { + result = func.apply(this, args); + } catch (e) { + return callback(e); + } + // if result is Promise object + if (_isObject(result) && typeof result.then === "function") { + result.then(function(value) { + callback(null, value); + })["catch"](function(err) { + callback(err.message ? err : new Error(err)); + }); + } else { + callback(null, result); + } + }); + }; + + // Node.js + if (typeof module === 'object' && module.exports) { + module.exports = async; + } + // AMD / RequireJS + else if (typeof define === 'function' && define.amd) { + define([], function () { + return async; + }); + } + // included directly via

    pako - zlib port to javascript, very fast!

    +

    Build Status +NPM version

    +

    Why pako is cool:

    +
      +
    • Almost as fast in modern JS engines as C implementation (see benchmarks).
    • +
    • Works in browsers, you can browserify any separate component.
    • +
    • Chunking support for big blobs.
    • +
    • Results are binary equal to well known zlib (now v1.2.8 ported).
    • +
    +

    This project was done to understand how fast JS can be and is it necessary to +develop native C modules for CPU-intensive tasks. Enjoy the result!

    +

    Famous projects, using pako:

    + +

    Benchmarks:

    +
    node v0.10.26, 1mb sample:
    +
    +   deflate-dankogai x 4.73 ops/sec ±0.82% (15 runs sampled)
    +   deflate-gildas x 4.58 ops/sec ±2.33% (15 runs sampled)
    +   deflate-imaya x 3.22 ops/sec ±3.95% (12 runs sampled)
    + ! deflate-pako x 6.99 ops/sec ±0.51% (21 runs sampled)
    +   deflate-pako-string x 5.89 ops/sec ±0.77% (18 runs sampled)
    +   deflate-pako-untyped x 4.39 ops/sec ±1.58% (14 runs sampled)
    + * deflate-zlib x 14.71 ops/sec ±4.23% (59 runs sampled)
    +   inflate-dankogai x 32.16 ops/sec ±0.13% (56 runs sampled)
    +   inflate-imaya x 30.35 ops/sec ±0.92% (53 runs sampled)
    + ! inflate-pako x 69.89 ops/sec ±1.46% (71 runs sampled)
    +   inflate-pako-string x 19.22 ops/sec ±1.86% (49 runs sampled)
    +   inflate-pako-untyped x 17.19 ops/sec ±0.85% (32 runs sampled)
    + * inflate-zlib x 70.03 ops/sec ±1.64% (81 runs sampled)
    +
    +node v0.11.12, 1mb sample:
    +
    +   deflate-dankogai x 5.60 ops/sec ±0.49% (17 runs sampled)
    +   deflate-gildas x 5.06 ops/sec ±6.00% (16 runs sampled)
    +   deflate-imaya x 3.52 ops/sec ±3.71% (13 runs sampled)
    + ! deflate-pako x 11.52 ops/sec ±0.22% (32 runs sampled)
    +   deflate-pako-string x 9.53 ops/sec ±1.12% (27 runs sampled)
    +   deflate-pako-untyped x 5.44 ops/sec ±0.72% (17 runs sampled)
    + * deflate-zlib x 14.05 ops/sec ±3.34% (63 runs sampled)
    +   inflate-dankogai x 42.19 ops/sec ±0.09% (56 runs sampled)
    +   inflate-imaya x 79.68 ops/sec ±1.07% (68 runs sampled)
    + ! inflate-pako x 97.52 ops/sec ±0.83% (80 runs sampled)
    +   inflate-pako-string x 45.19 ops/sec ±1.69% (57 runs sampled)
    +   inflate-pako-untyped x 24.35 ops/sec ±2.59% (40 runs sampled)
    + * inflate-zlib x 60.32 ops/sec ±1.36% (69 runs sampled)
    +

    zlib's test is partialy afferted by marshling (that make sense for inflate only). +You can change deflate level to 0 in benchmark source, to investigate details. +For deflate level 6 results can be considered as correct.

    +

    Install:

    +

    node.js:

    +
    npm install pako
    +

    browser:

    +
    bower install pako
    +

    Example & API

    +

    Full docs - http://nodeca.github.io/pako/

    +
    var pako = require('pako');
    +
    +// Deflate
    +//
    +var input = new Uint8Array();
    +//... fill input data here
    +var output = pako.deflate(input);
    +
    +// Inflate (simple wrapper can throw exception on broken stream)
    +//
    +var compressed = new Uint8Array();
    +//... fill data to uncompress here
    +try {
    +  var result = pako.inflate(compressed);
    +} catch (err) {
    +  console.log(err);
    +}
    +
    +//
    +// Alternate interface for chunking & without exceptions
    +//
    +
    +var inflator = new pako.Inflate();
    +
    +inflator.push(chunk1, false);
    +inflator.push(chunk2, false);
    +...
    +inflator.push(chunkN, true); // true -> last chunk
    +
    +if (inflator.err) {
    +  console.log(inflator.msg);
    +}
    +
    +var output = inflator.result;
    +

    Sometime you can wish to work with strings. For example, to send +big objects as json to server. Pako detects input data type. You can +force output to be string with option { to: 'string' }.

    +
    var pako = require('pako');
    +
    +var test = { my: 'super', puper: [456, 567], awesome: 'pako' };
    +
    +var binaryString = pako.deflate(JSON.stringify(test), { to: 'string' });
    +
    +//
    +// Here you can do base64 encode, make xhr requests and so on.
    +//
    +
    +var restored = JSON.parse(pako.inflate(binaryString, { to: 'string' }));
    +

    Notes

    +

    Pako does not contain some specific zlib functions:

    +
      +
    • deflate - methods deflateCopy, deflateBound, deflateParams, +deflatePending, deflatePrime, deflateSetDictionary, deflateTune.
    • +
    • inflate - inflateGetDictionary, inflateCopy, inflateMark, +inflatePrime, inflateSetDictionary, inflateSync, inflateSyncPoint, +inflateUndermine.
    • +
    +

    Authors

    + +

    Personal thanks to:

    +
      +
    • Vyacheslav Egorov (@mraleph) for his awesome +tutoruals about optimising JS code for v8, IRHydra +tool and his advices.
    • +
    • David Duponchel (@dduponchel) for help with +testing.
    • +
    +

    License

    +

    MIT

    +
    constructor

    Deflate.new

      • new Deflate(options)
      • options
        • Object
      • zlib deflate options.

        +

    Creates new deflator instance with specified params. Throws exception +on bad params. Supported options:

    +
      +
    • level
    • +
    • windowBits
    • +
    • memLevel
    • +
    • strategy
    • +
    +

    http://zlib.net/manual.html#Advanced +for more information on these.

    +

    Additional options, for internal needs:

    +
      +
    • chunkSize - size of generated data chunks (16K by default)
    • +
    • raw (Boolean) - do raw deflate
    • +
    • gzip (Boolean) - create gzip wrapper
    • +
    • to (String) - if equal to 'string', then result will be "binary string" + (each char code [0..255])
    • +
    • header (Object) - custom header for gzip
        +
      • text (Boolean) - true if compressed data believed to be text
      • +
      • time (Number) - modification time, unix timestamp
      • +
      • os (Number) - operation system code
      • +
      • extra (Array) - array of bytes with extra data (max 65536)
      • +
      • name (String) - file name (binary string)
      • +
      • comment (String) - comment (binary string)
      • +
      • hcrc (Boolean) - true if header crc should be added
      • +
      +
    • +
    +
    Example:
    +
    var pako = require('pako')
    +  , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
    +  , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
    +
    +var deflate = new pako.Deflate({ level: 3});
    +
    +deflate.push(chunk1, false);
    +deflate.push(chunk2, true);  // true -> last chunk
    +
    +if (deflate.err) { throw new Error(deflate.err); }
    +
    +console.log(deflate.result);
    +
    class property

    Deflate.err

      • Deflate.err
        • Number

    Error code after deflate finished. 0 (Z_OK) on success. +You will not need it in real life, because deflate errors +are possible only on wrong options or bad onData / onEnd +custom handlers.

    +
    instance method

    Deflate#onData

      • Deflate#onData(chunk)
        • Void
      • chunk
        • Uint8Array
        • Array
        • String
      • ouput data. Type of array depends +on js engine support. When string output requested, each chunk +will be string.

        +

    By default, stores data blocks in chunks[] property and glue +those in onEnd. Override this handler, if you need another behaviour.

    +
    instance method

    Deflate#onEnd

      • Deflate#onEnd(status)
        • Void
      • status
        • Number
      • deflate status. 0 (Z_OK) on success, +other if not.

        +

    Called once after you tell deflate that the input stream is +complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH) +or if an error happened. By default - join collected chunks, +free memory and fill results / err properties.

    +
    instance method

    Deflate#push

      • Deflate#push(data[, mode])
        • Boolean
      • data
        • Uint8Array
        • Array
        • ArrayBuffer
        • String
      • input data. Strings will be +converted to utf8 byte sequence.

        +
      • mode
        • Number
        • Boolean
      • 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes. +See constants. Skipped or false means Z_NO_FLUSH, true meansh Z_FINISH.

        +

    Sends input data to deflate pipe, generating Deflate#onData calls with +new compressed chunks. Returns true on success. The last data block must have +mode Z_FINISH (or true). That will flush internal pending buffers and call +Deflate#onEnd. For interim explicit flushes (without ending the stream) you +can use mode Z_SYNC_FLUSH, keeping the compression context.

    +

    On fail call Deflate#onEnd with error code and return false.

    +

    We strongly recommend to use Uint8Array on input for best speed (output +array format is detected automatically). Also, don't skip last param and always +use the same type in your code (boolean or number). That will improve JS speed.

    +

    For regular Array-s make sure all elements are [0..255].

    +
    Example
    +
    push(chunk, false); // push one of data chunks
    +...
    +push(chunk, true);  // push last chunk
    +
    method

    deflate

      • deflate(data[, options])
        • Uint8Array
        • Array
        • String
      • data
        • Uint8Array
        • Array
        • String
      • input data to compress.

        +
      • options
        • Object
      • zlib deflate options.

        +

    Compress data with deflate alrorythm and options.

    +

    Supported options are:

    +
      +
    • level
    • +
    • windowBits
    • +
    • memLevel
    • +
    • strategy
    • +
    +

    http://zlib.net/manual.html#Advanced +for more information on these.

    +

    Sugar (options):

    +
      +
    • raw (Boolean) - say that we work with raw stream, if you don't wish to specify +negative windowBits implicitly.
    • +
    • to (String) - if equal to 'string', then result will be "binary string" + (each char code [0..255])
    • +
    +
    Example:
    +
    var pako = require('pako')
    +  , data = Uint8Array([1,2,3,4,5,6,7,8,9]);
    +
    +console.log(pako.deflate(data));
    +
    method

    deflateRaw

      • deflateRaw(data[, options])
        • Uint8Array
        • Array
        • String
      • data
        • Uint8Array
        • Array
        • String
      • input data to compress.

        +
      • options
        • Object
      • zlib deflate options.

        +

    The same as deflate, but creates raw data, without wrapper +(header and adler32 crc).

    +
    method

    gzip

      • gzip(data[, options])
        • Uint8Array
        • Array
        • String
      • data
        • Uint8Array
        • Array
        • String
      • input data to compress.

        +
      • options
        • Object
      • zlib deflate options.

        +

    The same as deflate, but create gzip wrapper instead of +deflate one.

    +
    constructor

    Inflate.new

      • new Inflate(options)
      • options
        • Object
      • zlib inflate options.

        +

    Creates new inflator instance with specified params. Throws exception +on bad params. Supported options:

    +
      +
    • windowBits
    • +
    +

    http://zlib.net/manual.html#Advanced +for more information on these.

    +

    Additional options, for internal needs:

    +
      +
    • chunkSize - size of generated data chunks (16K by default)
    • +
    • raw (Boolean) - do raw inflate
    • +
    • to (String) - if equal to 'string', then result will be converted +from utf8 to utf16 (javascript) string. When string output requested, +chunk length can differ from chunkSize, depending on content.
    • +
    +

    By default, when no options set, autodetect deflate/gzip data format via +wrapper header.

    +
    Example:
    +
    var pako = require('pako')
    +  , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
    +  , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
    +
    +var inflate = new pako.Inflate({ level: 3});
    +
    +inflate.push(chunk1, false);
    +inflate.push(chunk2, true);  // true -> last chunk
    +
    +if (inflate.err) { throw new Error(inflate.err); }
    +
    +console.log(inflate.result);
    +
    class property

    Inflate.err

      • Inflate.err
        • Number

    Error code after inflate finished. 0 (Z_OK) on success. +Should be checked if broken data possible.

    +
    instance method

    Inflate#onData

      • Inflate#onData(chunk)
        • Void
      • chunk
        • Uint8Array
        • Array
        • String
      • ouput data. Type of array depends +on js engine support. When string output requested, each chunk +will be string.

        +

    By default, stores data blocks in chunks[] property and glue +those in onEnd. Override this handler, if you need another behaviour.

    +
    instance method

    Inflate#onEnd

      • Inflate#onEnd(status)
        • Void
      • status
        • Number
      • inflate status. 0 (Z_OK) on success, +other if not.

        +

    Called either after you tell inflate that the input stream is +complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH) +or if an error happened. By default - join collected chunks, +free memory and fill results / err properties.

    +
    instance method

    Inflate#push

      • Inflate#push(data[, mode])
        • Boolean
      • data
        • Uint8Array
        • Array
        • ArrayBuffer
        • String
      • input data

        +
      • mode
        • Number
        • Boolean
      • 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes. +See constants. Skipped or false means Z_NO_FLUSH, true meansh Z_FINISH.

        +

    Sends input data to inflate pipe, generating Inflate#onData calls with +new output chunks. Returns true on success. The last data block must have +mode Z_FINISH (or true). That will flush internal pending buffers and call +Inflate#onEnd. For interim explicit flushes (without ending the stream) you +can use mode Z_SYNC_FLUSH, keeping the decompression context.

    +

    On fail call Inflate#onEnd with error code and return false.

    +

    We strongly recommend to use Uint8Array on input for best speed (output +format is detected automatically). Also, don't skip last param and always +use the same type in your code (boolean or number). That will improve JS speed.

    +

    For regular Array-s make sure all elements are [0..255].

    +
    Example
    +
    push(chunk, false); // push one of data chunks
    +...
    +push(chunk, true);  // push last chunk
    +
    method

    inflate

      • inflate(data[, options])
        • Uint8Array
        • Array
        • String
      • data
        • Uint8Array
        • Array
        • String
      • input data to decompress.

        +
      • options
        • Object
      • zlib inflate options.

        +

    Decompress data with inflate/ungzip and options. Autodetect +format via wrapper header by default. That's why we don't provide +separate ungzip method.

    +

    Supported options are:

    +
      +
    • windowBits
    • +
    +

    http://zlib.net/manual.html#Advanced +for more information.

    +

    Sugar (options):

    +
      +
    • raw (Boolean) - say that we work with raw stream, if you don't wish to specify +negative windowBits implicitly.
    • +
    • to (String) - if equal to 'string', then result will be converted +from utf8 to utf16 (javascript) string. When string output requested, +chunk length can differ from chunkSize, depending on content.
    • +
    +
    Example:
    +
    var pako = require('pako')
    +  , input = pako.deflate([1,2,3,4,5,6,7,8,9])
    +  , output;
    +
    +try {
    +  output = pako.inflate(input);
    +} catch (err)
    +  console.log(err);
    +}
    +
    method

    inflateRaw

      • inflateRaw(data[, options])
        • Uint8Array
        • Array
        • String
      • data
        • Uint8Array
        • Array
        • String
      • input data to decompress.

        +
      • options
        • Object
      • zlib inflate options.

        +

    The same as inflate, but creates raw data, without wrapper +(header and adler32 crc).

    +
    method

    ungzip

      • ungzip(data[, options])
        • Uint8Array
        • Array
        • String
      • data
        • Uint8Array
        • Array
        • String
      • input data to decompress.

        +
      • options
        • Object
      • zlib inflate options.

        +

    Just shortcut to inflate, because it autodetects format +by header.content. Done for convenience.

    +

    Last updated on Mon, 14 Sep 2015 12:20:55 GMT. Generated by ndoc

    \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/pako/index.js b/packages/NoGit.0.1.0/node_modules/pako/index.js new file mode 100644 index 0000000..cd07251 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/index.js @@ -0,0 +1,14 @@ +// Top level file is just a mixin of submodules & constants +'use strict'; + +var assign = require('./lib/utils/common').assign; + +var deflate = require('./lib/deflate'); +var inflate = require('./lib/inflate'); +var constants = require('./lib/zlib/constants'); + +var pako = {}; + +assign(pako, deflate, inflate, constants); + +module.exports = pako; diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/deflate.js b/packages/NoGit.0.1.0/node_modules/pako/lib/deflate.js new file mode 100644 index 0000000..6768561 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/deflate.js @@ -0,0 +1,376 @@ +'use strict'; + + +var zlib_deflate = require('./zlib/deflate.js'); +var utils = require('./utils/common'); +var strings = require('./utils/strings'); +var msg = require('./zlib/messages'); +var zstream = require('./zlib/zstream'); + +var toString = Object.prototype.toString; + +/* Public constants ==========================================================*/ +/* ===========================================================================*/ + +var Z_NO_FLUSH = 0; +var Z_FINISH = 4; + +var Z_OK = 0; +var Z_STREAM_END = 1; +var Z_SYNC_FLUSH = 2; + +var Z_DEFAULT_COMPRESSION = -1; + +var Z_DEFAULT_STRATEGY = 0; + +var Z_DEFLATED = 8; + +/* ===========================================================================*/ + + +/** + * class Deflate + * + * Generic JS-style wrapper for zlib calls. If you don't need + * streaming behaviour - use more simple functions: [[deflate]], + * [[deflateRaw]] and [[gzip]]. + **/ + +/* internal + * Deflate.chunks -> Array + * + * Chunks of output data, if [[Deflate#onData]] not overriden. + **/ + +/** + * Deflate.result -> Uint8Array|Array + * + * Compressed result, generated by default [[Deflate#onData]] + * and [[Deflate#onEnd]] handlers. Filled after you push last chunk + * (call [[Deflate#push]] with `Z_FINISH` / `true` param) or if you + * push a chunk with explicit flush (call [[Deflate#push]] with + * `Z_SYNC_FLUSH` param). + **/ + +/** + * Deflate.err -> Number + * + * Error code after deflate finished. 0 (Z_OK) on success. + * You will not need it in real life, because deflate errors + * are possible only on wrong options or bad `onData` / `onEnd` + * custom handlers. + **/ + +/** + * Deflate.msg -> String + * + * Error message, if [[Deflate.err]] != 0 + **/ + + +/** + * new Deflate(options) + * - options (Object): zlib deflate options. + * + * Creates new deflator instance with specified params. Throws exception + * on bad params. Supported options: + * + * - `level` + * - `windowBits` + * - `memLevel` + * - `strategy` + * + * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) + * for more information on these. + * + * Additional options, for internal needs: + * + * - `chunkSize` - size of generated data chunks (16K by default) + * - `raw` (Boolean) - do raw deflate + * - `gzip` (Boolean) - create gzip wrapper + * - `to` (String) - if equal to 'string', then result will be "binary string" + * (each char code [0..255]) + * - `header` (Object) - custom header for gzip + * - `text` (Boolean) - true if compressed data believed to be text + * - `time` (Number) - modification time, unix timestamp + * - `os` (Number) - operation system code + * - `extra` (Array) - array of bytes with extra data (max 65536) + * - `name` (String) - file name (binary string) + * - `comment` (String) - comment (binary string) + * - `hcrc` (Boolean) - true if header crc should be added + * + * ##### Example: + * + * ```javascript + * var pako = require('pako') + * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9]) + * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]); + * + * var deflate = new pako.Deflate({ level: 3}); + * + * deflate.push(chunk1, false); + * deflate.push(chunk2, true); // true -> last chunk + * + * if (deflate.err) { throw new Error(deflate.err); } + * + * console.log(deflate.result); + * ``` + **/ +var Deflate = function(options) { + + this.options = utils.assign({ + level: Z_DEFAULT_COMPRESSION, + method: Z_DEFLATED, + chunkSize: 16384, + windowBits: 15, + memLevel: 8, + strategy: Z_DEFAULT_STRATEGY, + to: '' + }, options || {}); + + var opt = this.options; + + if (opt.raw && (opt.windowBits > 0)) { + opt.windowBits = -opt.windowBits; + } + + else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) { + opt.windowBits += 16; + } + + this.err = 0; // error code, if happens (0 = Z_OK) + this.msg = ''; // error message + this.ended = false; // used to avoid multiple onEnd() calls + this.chunks = []; // chunks of compressed data + + this.strm = new zstream(); + this.strm.avail_out = 0; + + var status = zlib_deflate.deflateInit2( + this.strm, + opt.level, + opt.method, + opt.windowBits, + opt.memLevel, + opt.strategy + ); + + if (status !== Z_OK) { + throw new Error(msg[status]); + } + + if (opt.header) { + zlib_deflate.deflateSetHeader(this.strm, opt.header); + } +}; + +/** + * Deflate#push(data[, mode]) -> Boolean + * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be + * converted to utf8 byte sequence. + * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes. + * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH. + * + * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with + * new compressed chunks. Returns `true` on success. The last data block must have + * mode Z_FINISH (or `true`). That will flush internal pending buffers and call + * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you + * can use mode Z_SYNC_FLUSH, keeping the compression context. + * + * On fail call [[Deflate#onEnd]] with error code and return false. + * + * We strongly recommend to use `Uint8Array` on input for best speed (output + * array format is detected automatically). Also, don't skip last param and always + * use the same type in your code (boolean or number). That will improve JS speed. + * + * For regular `Array`-s make sure all elements are [0..255]. + * + * ##### Example + * + * ```javascript + * push(chunk, false); // push one of data chunks + * ... + * push(chunk, true); // push last chunk + * ``` + **/ +Deflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var status, _mode; + + if (this.ended) { return false; } + + _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH); + + // Convert data if needed + if (typeof data === 'string') { + // If we need to compress text, change encoding to utf8. + strm.input = strings.string2buf(data); + } else if (toString.call(data) === '[object ArrayBuffer]') { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + + strm.next_in = 0; + strm.avail_in = strm.input.length; + + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status = zlib_deflate.deflate(strm, _mode); /* no bad return value */ + + if (status !== Z_STREAM_END && status !== Z_OK) { + this.onEnd(status); + this.ended = true; + return false; + } + if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) { + if (this.options.to === 'string') { + this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out))); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END); + + // Finalize on the last chunk. + if (_mode === Z_FINISH) { + status = zlib_deflate.deflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return status === Z_OK; + } + + // callback interim results if Z_SYNC_FLUSH. + if (_mode === Z_SYNC_FLUSH) { + this.onEnd(Z_OK); + strm.avail_out = 0; + return true; + } + + return true; +}; + + +/** + * Deflate#onData(chunk) -> Void + * - chunk (Uint8Array|Array|String): ouput data. Type of array depends + * on js engine support. When string output requested, each chunk + * will be string. + * + * By default, stores data blocks in `chunks[]` property and glue + * those in `onEnd`. Override this handler, if you need another behaviour. + **/ +Deflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); +}; + + +/** + * Deflate#onEnd(status) -> Void + * - status (Number): deflate status. 0 (Z_OK) on success, + * other if not. + * + * Called once after you tell deflate that the input stream is + * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH) + * or if an error happened. By default - join collected chunks, + * free memory and fill `results` / `err` properties. + **/ +Deflate.prototype.onEnd = function(status) { + // On success - join + if (status === Z_OK) { + if (this.options.to === 'string') { + this.result = this.chunks.join(''); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; +}; + + +/** + * deflate(data[, options]) -> Uint8Array|Array|String + * - data (Uint8Array|Array|String): input data to compress. + * - options (Object): zlib deflate options. + * + * Compress `data` with deflate alrorythm and `options`. + * + * Supported options are: + * + * - level + * - windowBits + * - memLevel + * - strategy + * + * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) + * for more information on these. + * + * Sugar (options): + * + * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify + * negative windowBits implicitly. + * - `to` (String) - if equal to 'string', then result will be "binary string" + * (each char code [0..255]) + * + * ##### Example: + * + * ```javascript + * var pako = require('pako') + * , data = Uint8Array([1,2,3,4,5,6,7,8,9]); + * + * console.log(pako.deflate(data)); + * ``` + **/ +function deflate(input, options) { + var deflator = new Deflate(options); + + deflator.push(input, true); + + // That will never happens, if you don't cheat with options :) + if (deflator.err) { throw deflator.msg; } + + return deflator.result; +} + + +/** + * deflateRaw(data[, options]) -> Uint8Array|Array|String + * - data (Uint8Array|Array|String): input data to compress. + * - options (Object): zlib deflate options. + * + * The same as [[deflate]], but creates raw data, without wrapper + * (header and adler32 crc). + **/ +function deflateRaw(input, options) { + options = options || {}; + options.raw = true; + return deflate(input, options); +} + + +/** + * gzip(data[, options]) -> Uint8Array|Array|String + * - data (Uint8Array|Array|String): input data to compress. + * - options (Object): zlib deflate options. + * + * The same as [[deflate]], but create gzip wrapper instead of + * deflate one. + **/ +function gzip(input, options) { + options = options || {}; + options.gzip = true; + return deflate(input, options); +} + + +exports.Deflate = Deflate; +exports.deflate = deflate; +exports.deflateRaw = deflateRaw; +exports.gzip = gzip; diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/inflate.js b/packages/NoGit.0.1.0/node_modules/pako/lib/inflate.js new file mode 100644 index 0000000..d863f8f --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/inflate.js @@ -0,0 +1,400 @@ +'use strict'; + + +var zlib_inflate = require('./zlib/inflate.js'); +var utils = require('./utils/common'); +var strings = require('./utils/strings'); +var c = require('./zlib/constants'); +var msg = require('./zlib/messages'); +var zstream = require('./zlib/zstream'); +var gzheader = require('./zlib/gzheader'); + +var toString = Object.prototype.toString; + +/** + * class Inflate + * + * Generic JS-style wrapper for zlib calls. If you don't need + * streaming behaviour - use more simple functions: [[inflate]] + * and [[inflateRaw]]. + **/ + +/* internal + * inflate.chunks -> Array + * + * Chunks of output data, if [[Inflate#onData]] not overriden. + **/ + +/** + * Inflate.result -> Uint8Array|Array|String + * + * Uncompressed result, generated by default [[Inflate#onData]] + * and [[Inflate#onEnd]] handlers. Filled after you push last chunk + * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you + * push a chunk with explicit flush (call [[Inflate#push]] with + * `Z_SYNC_FLUSH` param). + **/ + +/** + * Inflate.err -> Number + * + * Error code after inflate finished. 0 (Z_OK) on success. + * Should be checked if broken data possible. + **/ + +/** + * Inflate.msg -> String + * + * Error message, if [[Inflate.err]] != 0 + **/ + + +/** + * new Inflate(options) + * - options (Object): zlib inflate options. + * + * Creates new inflator instance with specified params. Throws exception + * on bad params. Supported options: + * + * - `windowBits` + * + * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) + * for more information on these. + * + * Additional options, for internal needs: + * + * - `chunkSize` - size of generated data chunks (16K by default) + * - `raw` (Boolean) - do raw inflate + * - `to` (String) - if equal to 'string', then result will be converted + * from utf8 to utf16 (javascript) string. When string output requested, + * chunk length can differ from `chunkSize`, depending on content. + * + * By default, when no options set, autodetect deflate/gzip data format via + * wrapper header. + * + * ##### Example: + * + * ```javascript + * var pako = require('pako') + * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9]) + * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]); + * + * var inflate = new pako.Inflate({ level: 3}); + * + * inflate.push(chunk1, false); + * inflate.push(chunk2, true); // true -> last chunk + * + * if (inflate.err) { throw new Error(inflate.err); } + * + * console.log(inflate.result); + * ``` + **/ +var Inflate = function(options) { + + this.options = utils.assign({ + chunkSize: 16384, + windowBits: 0, + to: '' + }, options || {}); + + var opt = this.options; + + // Force window size for `raw` data, if not set directly, + // because we have no header for autodetect. + if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) { + opt.windowBits = -opt.windowBits; + if (opt.windowBits === 0) { opt.windowBits = -15; } + } + + // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate + if ((opt.windowBits >= 0) && (opt.windowBits < 16) && + !(options && options.windowBits)) { + opt.windowBits += 32; + } + + // Gzip header has no info about windows size, we can do autodetect only + // for deflate. So, if window size not set, force it to max when gzip possible + if ((opt.windowBits > 15) && (opt.windowBits < 48)) { + // bit 3 (16) -> gzipped data + // bit 4 (32) -> autodetect gzip/deflate + if ((opt.windowBits & 15) === 0) { + opt.windowBits |= 15; + } + } + + this.err = 0; // error code, if happens (0 = Z_OK) + this.msg = ''; // error message + this.ended = false; // used to avoid multiple onEnd() calls + this.chunks = []; // chunks of compressed data + + this.strm = new zstream(); + this.strm.avail_out = 0; + + var status = zlib_inflate.inflateInit2( + this.strm, + opt.windowBits + ); + + if (status !== c.Z_OK) { + throw new Error(msg[status]); + } + + this.header = new gzheader(); + + zlib_inflate.inflateGetHeader(this.strm, this.header); +}; + +/** + * Inflate#push(data[, mode]) -> Boolean + * - data (Uint8Array|Array|ArrayBuffer|String): input data + * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes. + * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH. + * + * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with + * new output chunks. Returns `true` on success. The last data block must have + * mode Z_FINISH (or `true`). That will flush internal pending buffers and call + * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you + * can use mode Z_SYNC_FLUSH, keeping the decompression context. + * + * On fail call [[Inflate#onEnd]] with error code and return false. + * + * We strongly recommend to use `Uint8Array` on input for best speed (output + * format is detected automatically). Also, don't skip last param and always + * use the same type in your code (boolean or number). That will improve JS speed. + * + * For regular `Array`-s make sure all elements are [0..255]. + * + * ##### Example + * + * ```javascript + * push(chunk, false); // push one of data chunks + * ... + * push(chunk, true); // push last chunk + * ``` + **/ +Inflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var status, _mode; + var next_out_utf8, tail, utf8str; + + // Flag to properly process Z_BUF_ERROR on testing inflate call + // when we check that all output data was flushed. + var allowBufError = false; + + if (this.ended) { return false; } + _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH); + + // Convert data if needed + if (typeof data === 'string') { + // Only binary strings can be decompressed on practice + strm.input = strings.binstring2buf(data); + } else if (toString.call(data) === '[object ArrayBuffer]') { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + + strm.next_in = 0; + strm.avail_in = strm.input.length; + + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + + status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */ + + if (status === c.Z_BUF_ERROR && allowBufError === true) { + status = c.Z_OK; + allowBufError = false; + } + + if (status !== c.Z_STREAM_END && status !== c.Z_OK) { + this.onEnd(status); + this.ended = true; + return false; + } + + if (strm.next_out) { + if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) { + + if (this.options.to === 'string') { + + next_out_utf8 = strings.utf8border(strm.output, strm.next_out); + + tail = strm.next_out - next_out_utf8; + utf8str = strings.buf2string(strm.output, next_out_utf8); + + // move tail + strm.next_out = tail; + strm.avail_out = chunkSize - tail; + if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); } + + this.onData(utf8str); + + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } + + // When no more input data, we should check that internal inflate buffers + // are flushed. The only way to do it when avail_out = 0 - run one more + // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR. + // Here we set flag to process this error properly. + // + // NOTE. Deflate does not return error in this case and does not needs such + // logic. + if (strm.avail_in === 0 && strm.avail_out === 0) { + allowBufError = true; + } + + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END); + + if (status === c.Z_STREAM_END) { + _mode = c.Z_FINISH; + } + + // Finalize on the last chunk. + if (_mode === c.Z_FINISH) { + status = zlib_inflate.inflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return status === c.Z_OK; + } + + // callback interim results if Z_SYNC_FLUSH. + if (_mode === c.Z_SYNC_FLUSH) { + this.onEnd(c.Z_OK); + strm.avail_out = 0; + return true; + } + + return true; +}; + + +/** + * Inflate#onData(chunk) -> Void + * - chunk (Uint8Array|Array|String): ouput data. Type of array depends + * on js engine support. When string output requested, each chunk + * will be string. + * + * By default, stores data blocks in `chunks[]` property and glue + * those in `onEnd`. Override this handler, if you need another behaviour. + **/ +Inflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); +}; + + +/** + * Inflate#onEnd(status) -> Void + * - status (Number): inflate status. 0 (Z_OK) on success, + * other if not. + * + * Called either after you tell inflate that the input stream is + * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH) + * or if an error happened. By default - join collected chunks, + * free memory and fill `results` / `err` properties. + **/ +Inflate.prototype.onEnd = function(status) { + // On success - join + if (status === c.Z_OK) { + if (this.options.to === 'string') { + // Glue & convert here, until we teach pako to send + // utf8 alligned strings to onData + this.result = this.chunks.join(''); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; +}; + + +/** + * inflate(data[, options]) -> Uint8Array|Array|String + * - data (Uint8Array|Array|String): input data to decompress. + * - options (Object): zlib inflate options. + * + * Decompress `data` with inflate/ungzip and `options`. Autodetect + * format via wrapper header by default. That's why we don't provide + * separate `ungzip` method. + * + * Supported options are: + * + * - windowBits + * + * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) + * for more information. + * + * Sugar (options): + * + * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify + * negative windowBits implicitly. + * - `to` (String) - if equal to 'string', then result will be converted + * from utf8 to utf16 (javascript) string. When string output requested, + * chunk length can differ from `chunkSize`, depending on content. + * + * + * ##### Example: + * + * ```javascript + * var pako = require('pako') + * , input = pako.deflate([1,2,3,4,5,6,7,8,9]) + * , output; + * + * try { + * output = pako.inflate(input); + * } catch (err) + * console.log(err); + * } + * ``` + **/ +function inflate(input, options) { + var inflator = new Inflate(options); + + inflator.push(input, true); + + // That will never happens, if you don't cheat with options :) + if (inflator.err) { throw inflator.msg; } + + return inflator.result; +} + + +/** + * inflateRaw(data[, options]) -> Uint8Array|Array|String + * - data (Uint8Array|Array|String): input data to decompress. + * - options (Object): zlib inflate options. + * + * The same as [[inflate]], but creates raw data, without wrapper + * (header and adler32 crc). + **/ +function inflateRaw(input, options) { + options = options || {}; + options.raw = true; + return inflate(input, options); +} + + +/** + * ungzip(data[, options]) -> Uint8Array|Array|String + * - data (Uint8Array|Array|String): input data to decompress. + * - options (Object): zlib inflate options. + * + * Just shortcut to [[inflate]], because it autodetects format + * by header.content. Done for convenience. + **/ + + +exports.Inflate = Inflate; +exports.inflate = inflate; +exports.inflateRaw = inflateRaw; +exports.ungzip = inflate; diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/utils/common.js b/packages/NoGit.0.1.0/node_modules/pako/lib/utils/common.js new file mode 100644 index 0000000..67aaba1 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/utils/common.js @@ -0,0 +1,102 @@ +'use strict'; + + +var TYPED_OK = (typeof Uint8Array !== 'undefined') && + (typeof Uint16Array !== 'undefined') && + (typeof Int32Array !== 'undefined'); + + +exports.assign = function (obj /*from1, from2, from3, ...*/) { + var sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + var source = sources.shift(); + if (!source) { continue; } + + if (typeof source !== 'object') { + throw new TypeError(source + 'must be non-object'); + } + + for (var p in source) { + if (source.hasOwnProperty(p)) { + obj[p] = source[p]; + } + } + } + + return obj; +}; + + +// reduce buffer size, avoiding mem copy +exports.shrinkBuf = function (buf, size) { + if (buf.length === size) { return buf; } + if (buf.subarray) { return buf.subarray(0, size); } + buf.length = size; + return buf; +}; + + +var fnTyped = { + arraySet: function (dest, src, src_offs, len, dest_offs) { + if (src.subarray && dest.subarray) { + dest.set(src.subarray(src_offs, src_offs+len), dest_offs); + return; + } + // Fallback to ordinary array + for (var i=0; i= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1); +} +_utf8len[254]=_utf8len[254]=1; // Invalid sequence start + + +// convert string to array (typed, when possible) +exports.string2buf = function (str) { + var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + + // count binary size + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { + c2 = str.charCodeAt(m_pos+1); + if ((c2 & 0xfc00) === 0xdc00) { + c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); + m_pos++; + } + } + buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; + } + + // allocate buffer + buf = new utils.Buf8(buf_len); + + // convert + for (i=0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { + c2 = str.charCodeAt(m_pos+1); + if ((c2 & 0xfc00) === 0xdc00) { + c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); + m_pos++; + } + } + if (c < 0x80) { + /* one byte */ + buf[i++] = c; + } else if (c < 0x800) { + /* two bytes */ + buf[i++] = 0xC0 | (c >>> 6); + buf[i++] = 0x80 | (c & 0x3f); + } else if (c < 0x10000) { + /* three bytes */ + buf[i++] = 0xE0 | (c >>> 12); + buf[i++] = 0x80 | (c >>> 6 & 0x3f); + buf[i++] = 0x80 | (c & 0x3f); + } else { + /* four bytes */ + buf[i++] = 0xf0 | (c >>> 18); + buf[i++] = 0x80 | (c >>> 12 & 0x3f); + buf[i++] = 0x80 | (c >>> 6 & 0x3f); + buf[i++] = 0x80 | (c & 0x3f); + } + } + + return buf; +}; + +// Helper (used in 2 places) +function buf2binstring(buf, len) { + // use fallback for big arrays to avoid stack overflow + if (len < 65537) { + if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) { + return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); + } + } + + var result = ''; + for (var i=0; i < len; i++) { + result += String.fromCharCode(buf[i]); + } + return result; +} + + +// Convert byte array to binary string +exports.buf2binstring = function(buf) { + return buf2binstring(buf, buf.length); +}; + + +// Convert binary string (typed, when possible) +exports.binstring2buf = function(str) { + var buf = new utils.Buf8(str.length); + for (var i=0, len=buf.length; i < len; i++) { + buf[i] = str.charCodeAt(i); + } + return buf; +}; + + +// convert array to string +exports.buf2string = function (buf, max) { + var i, out, c, c_len; + var len = max || buf.length; + + // Reserve max possible length (2 words per char) + // NB: by unknown reasons, Array is significantly faster for + // String.fromCharCode.apply than Uint16Array. + var utf16buf = new Array(len*2); + + for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; } + + // apply mask on first byte + c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; + // join the rest + while (c_len > 1 && i < len) { + c = (c << 6) | (buf[i++] & 0x3f); + c_len--; + } + + // terminated by end of string? + if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } + + if (c < 0x10000) { + utf16buf[out++] = c; + } else { + c -= 0x10000; + utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); + utf16buf[out++] = 0xdc00 | (c & 0x3ff); + } + } + + return buf2binstring(utf16buf, out); +}; + + +// Calculate max possible position in utf8 buffer, +// that will not break sequence. If that's not possible +// - (very small limits) return max size as is. +// +// buf[] - utf8 bytes array +// max - length limit (mandatory); +exports.utf8border = function(buf, max) { + var pos; + + max = max || buf.length; + if (max > buf.length) { max = buf.length; } + + // go back from last position, until start of sequence found + pos = max-1; + while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } + + // Fuckup - very small and broken sequence, + // return max, because we should return something anyway. + if (pos < 0) { return max; } + + // If we came to start of buffer - that means vuffer is too small, + // return max too. + if (pos === 0) { return max; } + + return (pos + _utf8len[buf[pos]] > max) ? pos : max; +}; diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/adler32.js b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/adler32.js new file mode 100644 index 0000000..dcefe93 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/adler32.js @@ -0,0 +1,32 @@ +'use strict'; + +// Note: adler32 takes 12% for level 0 and 2% for level 6. +// It doesn't worth to make additional optimizationa as in original. +// Small size is preferable. + +function adler32(adler, buf, len, pos) { + var s1 = (adler & 0xffff) |0, + s2 = ((adler >>> 16) & 0xffff) |0, + n = 0; + + while (len !== 0) { + // Set limit ~ twice less than 5552, to keep + // s2 in 31-bits, because we force signed ints. + // in other case %= will fail. + n = len > 2000 ? 2000 : len; + len -= n; + + do { + s1 = (s1 + buf[pos++]) |0; + s2 = (s2 + s1) |0; + } while (--n); + + s1 %= 65521; + s2 %= 65521; + } + + return (s1 | (s2 << 16)) |0; +} + + +module.exports = adler32; diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/constants.js b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/constants.js new file mode 100644 index 0000000..f32af66 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/constants.js @@ -0,0 +1,47 @@ +module.exports = { + + /* Allowed flush values; see deflate() and inflate() below for details */ + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_TREES: 6, + + /* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ + Z_OK: 0, + Z_STREAM_END: 1, + Z_NEED_DICT: 2, + Z_ERRNO: -1, + Z_STREAM_ERROR: -2, + Z_DATA_ERROR: -3, + //Z_MEM_ERROR: -4, + Z_BUF_ERROR: -5, + //Z_VERSION_ERROR: -6, + + /* compression levels */ + Z_NO_COMPRESSION: 0, + Z_BEST_SPEED: 1, + Z_BEST_COMPRESSION: 9, + Z_DEFAULT_COMPRESSION: -1, + + + Z_FILTERED: 1, + Z_HUFFMAN_ONLY: 2, + Z_RLE: 3, + Z_FIXED: 4, + Z_DEFAULT_STRATEGY: 0, + + /* Possible values of the data_type field (though see inflate()) */ + Z_BINARY: 0, + Z_TEXT: 1, + //Z_ASCII: 1, // = Z_TEXT (deprecated) + Z_UNKNOWN: 2, + + /* The deflate compression method */ + Z_DEFLATED: 8 + //Z_NULL: null // Use -1 or null inline, depending on var type +}; diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/crc32.js b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/crc32.js new file mode 100644 index 0000000..767aa80 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/crc32.js @@ -0,0 +1,41 @@ +'use strict'; + +// Note: we can't get significant speed boost here. +// So write code to minimize size - no pregenerated tables +// and array tools dependencies. + + +// Use ordinary array, since untyped makes no boost here +function makeTable() { + var c, table = []; + + for (var n =0; n < 256; n++) { + c = n; + for (var k =0; k < 8; k++) { + c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); + } + table[n] = c; + } + + return table; +} + +// Create table on load. Just 255 signed longs. Not a problem. +var crcTable = makeTable(); + + +function crc32(crc, buf, len, pos) { + var t = crcTable, + end = pos + len; + + crc = crc ^ (-1); + + for (var i = pos; i < end; i++) { + crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; + } + + return (crc ^ (-1)); // >>> 0; +} + + +module.exports = crc32; diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/deflate.js b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/deflate.js new file mode 100644 index 0000000..ff0bb06 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/deflate.js @@ -0,0 +1,1765 @@ +'use strict'; + +var utils = require('../utils/common'); +var trees = require('./trees'); +var adler32 = require('./adler32'); +var crc32 = require('./crc32'); +var msg = require('./messages'); + +/* Public constants ==========================================================*/ +/* ===========================================================================*/ + + +/* Allowed flush values; see deflate() and inflate() below for details */ +var Z_NO_FLUSH = 0; +var Z_PARTIAL_FLUSH = 1; +//var Z_SYNC_FLUSH = 2; +var Z_FULL_FLUSH = 3; +var Z_FINISH = 4; +var Z_BLOCK = 5; +//var Z_TREES = 6; + + +/* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ +var Z_OK = 0; +var Z_STREAM_END = 1; +//var Z_NEED_DICT = 2; +//var Z_ERRNO = -1; +var Z_STREAM_ERROR = -2; +var Z_DATA_ERROR = -3; +//var Z_MEM_ERROR = -4; +var Z_BUF_ERROR = -5; +//var Z_VERSION_ERROR = -6; + + +/* compression levels */ +//var Z_NO_COMPRESSION = 0; +//var Z_BEST_SPEED = 1; +//var Z_BEST_COMPRESSION = 9; +var Z_DEFAULT_COMPRESSION = -1; + + +var Z_FILTERED = 1; +var Z_HUFFMAN_ONLY = 2; +var Z_RLE = 3; +var Z_FIXED = 4; +var Z_DEFAULT_STRATEGY = 0; + +/* Possible values of the data_type field (though see inflate()) */ +//var Z_BINARY = 0; +//var Z_TEXT = 1; +//var Z_ASCII = 1; // = Z_TEXT +var Z_UNKNOWN = 2; + + +/* The deflate compression method */ +var Z_DEFLATED = 8; + +/*============================================================================*/ + + +var MAX_MEM_LEVEL = 9; +/* Maximum value for memLevel in deflateInit2 */ +var MAX_WBITS = 15; +/* 32K LZ77 window */ +var DEF_MEM_LEVEL = 8; + + +var LENGTH_CODES = 29; +/* number of length codes, not counting the special END_BLOCK code */ +var LITERALS = 256; +/* number of literal bytes 0..255 */ +var L_CODES = LITERALS + 1 + LENGTH_CODES; +/* number of Literal or Length codes, including the END_BLOCK code */ +var D_CODES = 30; +/* number of distance codes */ +var BL_CODES = 19; +/* number of codes used to transfer the bit lengths */ +var HEAP_SIZE = 2*L_CODES + 1; +/* maximum heap size */ +var MAX_BITS = 15; +/* All codes must not exceed MAX_BITS bits */ + +var MIN_MATCH = 3; +var MAX_MATCH = 258; +var MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1); + +var PRESET_DICT = 0x20; + +var INIT_STATE = 42; +var EXTRA_STATE = 69; +var NAME_STATE = 73; +var COMMENT_STATE = 91; +var HCRC_STATE = 103; +var BUSY_STATE = 113; +var FINISH_STATE = 666; + +var BS_NEED_MORE = 1; /* block not completed, need more input or more output */ +var BS_BLOCK_DONE = 2; /* block flush performed */ +var BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */ +var BS_FINISH_DONE = 4; /* finish done, accept no more input or output */ + +var OS_CODE = 0x03; // Unix :) . Don't detect, use this default. + +function err(strm, errorCode) { + strm.msg = msg[errorCode]; + return errorCode; +} + +function rank(f) { + return ((f) << 1) - ((f) > 4 ? 9 : 0); +} + +function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } } + + +/* ========================================================================= + * Flush as much pending output as possible. All deflate() output goes + * through this function so some applications may wish to modify it + * to avoid allocating a large strm->output buffer and copying into it. + * (See also read_buf()). + */ +function flush_pending(strm) { + var s = strm.state; + + //_tr_flush_bits(s); + var len = s.pending; + if (len > strm.avail_out) { + len = strm.avail_out; + } + if (len === 0) { return; } + + utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out); + strm.next_out += len; + s.pending_out += len; + strm.total_out += len; + strm.avail_out -= len; + s.pending -= len; + if (s.pending === 0) { + s.pending_out = 0; + } +} + + +function flush_block_only (s, last) { + trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last); + s.block_start = s.strstart; + flush_pending(s.strm); +} + + +function put_byte(s, b) { + s.pending_buf[s.pending++] = b; +} + + +/* ========================================================================= + * Put a short in the pending buffer. The 16-bit value is put in MSB order. + * IN assertion: the stream state is correct and there is enough room in + * pending_buf. + */ +function putShortMSB(s, b) { +// put_byte(s, (Byte)(b >> 8)); +// put_byte(s, (Byte)(b & 0xff)); + s.pending_buf[s.pending++] = (b >>> 8) & 0xff; + s.pending_buf[s.pending++] = b & 0xff; +} + + +/* =========================================================================== + * Read a new buffer from the current input stream, update the adler32 + * and total number of bytes read. All deflate() input goes through + * this function so some applications may wish to modify it to avoid + * allocating a large strm->input buffer and copying from it. + * (See also flush_pending()). + */ +function read_buf(strm, buf, start, size) { + var len = strm.avail_in; + + if (len > size) { len = size; } + if (len === 0) { return 0; } + + strm.avail_in -= len; + + utils.arraySet(buf, strm.input, strm.next_in, len, start); + if (strm.state.wrap === 1) { + strm.adler = adler32(strm.adler, buf, len, start); + } + + else if (strm.state.wrap === 2) { + strm.adler = crc32(strm.adler, buf, len, start); + } + + strm.next_in += len; + strm.total_in += len; + + return len; +} + + +/* =========================================================================== + * Set match_start to the longest match starting at the given string and + * return its length. Matches shorter or equal to prev_length are discarded, + * in which case the result is equal to prev_length and match_start is + * garbage. + * IN assertions: cur_match is the head of the hash chain for the current + * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 + * OUT assertion: the match length is not greater than s->lookahead. + */ +function longest_match(s, cur_match) { + var chain_length = s.max_chain_length; /* max hash chain length */ + var scan = s.strstart; /* current string */ + var match; /* matched string */ + var len; /* length of current match */ + var best_len = s.prev_length; /* best match length so far */ + var nice_match = s.nice_match; /* stop if match long enough */ + var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ? + s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/; + + var _win = s.window; // shortcut + + var wmask = s.w_mask; + var prev = s.prev; + + /* Stop when cur_match becomes <= limit. To simplify the code, + * we prevent matches with the string of window index 0. + */ + + var strend = s.strstart + MAX_MATCH; + var scan_end1 = _win[scan + best_len - 1]; + var scan_end = _win[scan + best_len]; + + /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. + * It is easy to get rid of this optimization if necessary. + */ + // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); + + /* Do not waste too much time if we already have a good match: */ + if (s.prev_length >= s.good_match) { + chain_length >>= 2; + } + /* Do not look for matches beyond the end of the input. This is necessary + * to make deflate deterministic. + */ + if (nice_match > s.lookahead) { nice_match = s.lookahead; } + + // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); + + do { + // Assert(cur_match < s->strstart, "no future"); + match = cur_match; + + /* Skip to next match if the match length cannot increase + * or if the match length is less than 2. Note that the checks below + * for insufficient lookahead only occur occasionally for performance + * reasons. Therefore uninitialized memory will be accessed, and + * conditional jumps will be made that depend on those values. + * However the length of the match is limited to the lookahead, so + * the output of deflate is not affected by the uninitialized values. + */ + + if (_win[match + best_len] !== scan_end || + _win[match + best_len - 1] !== scan_end1 || + _win[match] !== _win[scan] || + _win[++match] !== _win[scan + 1]) { + continue; + } + + /* The check at best_len-1 can be removed because it will be made + * again later. (This heuristic is not always a win.) + * It is not necessary to compare scan[2] and match[2] since they + * are always equal when the other bytes match, given that + * the hash keys are equal and that HASH_BITS >= 8. + */ + scan += 2; + match++; + // Assert(*scan == *match, "match[2]?"); + + /* We check for insufficient lookahead only every 8th comparison; + * the 256th check will be made at strstart+258. + */ + do { + /*jshint noempty:false*/ + } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + scan < strend); + + // Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); + + len = MAX_MATCH - (strend - scan); + scan = strend - MAX_MATCH; + + if (len > best_len) { + s.match_start = cur_match; + best_len = len; + if (len >= nice_match) { + break; + } + scan_end1 = _win[scan + best_len - 1]; + scan_end = _win[scan + best_len]; + } + } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); + + if (best_len <= s.lookahead) { + return best_len; + } + return s.lookahead; +} + + +/* =========================================================================== + * Fill the window when the lookahead becomes insufficient. + * Updates strstart and lookahead. + * + * IN assertion: lookahead < MIN_LOOKAHEAD + * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD + * At least one byte has been read, or avail_in == 0; reads are + * performed for at least two bytes (required for the zip translate_eol + * option -- not supported here). + */ +function fill_window(s) { + var _w_size = s.w_size; + var p, n, m, more, str; + + //Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead"); + + do { + more = s.window_size - s.lookahead - s.strstart; + + // JS ints have 32 bit, block below not needed + /* Deal with !@#$% 64K limit: */ + //if (sizeof(int) <= 2) { + // if (more == 0 && s->strstart == 0 && s->lookahead == 0) { + // more = wsize; + // + // } else if (more == (unsigned)(-1)) { + // /* Very unlikely, but possible on 16 bit machine if + // * strstart == 0 && lookahead == 1 (input done a byte at time) + // */ + // more--; + // } + //} + + + /* If the window is almost full and there is insufficient lookahead, + * move the upper half to the lower one to make room in the upper half. + */ + if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { + + utils.arraySet(s.window, s.window, _w_size, _w_size, 0); + s.match_start -= _w_size; + s.strstart -= _w_size; + /* we now have strstart >= MAX_DIST */ + s.block_start -= _w_size; + + /* Slide the hash table (could be avoided with 32 bit values + at the expense of memory usage). We slide even when level == 0 + to keep the hash table consistent if we switch back to level > 0 + later. (Using level 0 permanently is not an optimal usage of + zlib, so we don't care about this pathological case.) + */ + + n = s.hash_size; + p = n; + do { + m = s.head[--p]; + s.head[p] = (m >= _w_size ? m - _w_size : 0); + } while (--n); + + n = _w_size; + p = n; + do { + m = s.prev[--p]; + s.prev[p] = (m >= _w_size ? m - _w_size : 0); + /* If n is not on any hash chain, prev[n] is garbage but + * its value will never be used. + */ + } while (--n); + + more += _w_size; + } + if (s.strm.avail_in === 0) { + break; + } + + /* If there was no sliding: + * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && + * more == window_size - lookahead - strstart + * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) + * => more >= window_size - 2*WSIZE + 2 + * In the BIG_MEM or MMAP case (not yet supported), + * window_size == input_size + MIN_LOOKAHEAD && + * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. + * Otherwise, window_size == 2*WSIZE so more >= 2. + * If there was sliding, more >= WSIZE. So in all cases, more >= 2. + */ + //Assert(more >= 2, "more < 2"); + n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); + s.lookahead += n; + + /* Initialize the hash value now that we have some input: */ + if (s.lookahead + s.insert >= MIN_MATCH) { + str = s.strstart - s.insert; + s.ins_h = s.window[str]; + + /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */ + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask; +//#if MIN_MATCH != 3 +// Call update_hash() MIN_MATCH-3 more times +//#endif + while (s.insert) { + /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */ + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH-1]) & s.hash_mask; + + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + s.insert--; + if (s.lookahead + s.insert < MIN_MATCH) { + break; + } + } + } + /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, + * but this is not important since only literal bytes will be emitted. + */ + + } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); + + /* If the WIN_INIT bytes after the end of the current data have never been + * written, then zero those bytes in order to avoid memory check reports of + * the use of uninitialized (or uninitialised as Julian writes) bytes by + * the longest match routines. Update the high water mark for the next + * time through here. WIN_INIT is set to MAX_MATCH since the longest match + * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead. + */ +// if (s.high_water < s.window_size) { +// var curr = s.strstart + s.lookahead; +// var init = 0; +// +// if (s.high_water < curr) { +// /* Previous high water mark below current data -- zero WIN_INIT +// * bytes or up to end of window, whichever is less. +// */ +// init = s.window_size - curr; +// if (init > WIN_INIT) +// init = WIN_INIT; +// zmemzero(s->window + curr, (unsigned)init); +// s->high_water = curr + init; +// } +// else if (s->high_water < (ulg)curr + WIN_INIT) { +// /* High water mark at or above current data, but below current data +// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up +// * to end of window, whichever is less. +// */ +// init = (ulg)curr + WIN_INIT - s->high_water; +// if (init > s->window_size - s->high_water) +// init = s->window_size - s->high_water; +// zmemzero(s->window + s->high_water, (unsigned)init); +// s->high_water += init; +// } +// } +// +// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD, +// "not enough room for search"); +} + +/* =========================================================================== + * Copy without compression as much as possible from the input stream, return + * the current block state. + * This function does not insert new strings in the dictionary since + * uncompressible data is probably not useful. This function is used + * only for the level=0 compression option. + * NOTE: this function should be optimized to avoid extra copying from + * window to pending_buf. + */ +function deflate_stored(s, flush) { + /* Stored blocks are limited to 0xffff bytes, pending_buf is limited + * to pending_buf_size, and each stored block has a 5 byte header: + */ + var max_block_size = 0xffff; + + if (max_block_size > s.pending_buf_size - 5) { + max_block_size = s.pending_buf_size - 5; + } + + /* Copy as much as possible from input to output: */ + for (;;) { + /* Fill the window as much as possible: */ + if (s.lookahead <= 1) { + + //Assert(s->strstart < s->w_size+MAX_DIST(s) || + // s->block_start >= (long)s->w_size, "slide too late"); +// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) || +// s.block_start >= s.w_size)) { +// throw new Error("slide too late"); +// } + + fill_window(s); + if (s.lookahead === 0 && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + + if (s.lookahead === 0) { + break; + } + /* flush the current block */ + } + //Assert(s->block_start >= 0L, "block gone"); +// if (s.block_start < 0) throw new Error("block gone"); + + s.strstart += s.lookahead; + s.lookahead = 0; + + /* Emit a stored block if pending_buf will be full: */ + var max_start = s.block_start + max_block_size; + + if (s.strstart === 0 || s.strstart >= max_start) { + /* strstart == 0 is possible when wraparound on 16-bit machine */ + s.lookahead = s.strstart - max_start; + s.strstart = max_start; + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + + + } + /* Flush if we may have to slide, otherwise block_start may become + * negative and the data will be gone: + */ + if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + } + + s.insert = 0; + + if (flush === Z_FINISH) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + + if (s.strstart > s.block_start) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + + return BS_NEED_MORE; +} + +/* =========================================================================== + * Compress as much as possible from the input stream, return the current + * block state. + * This function does not perform lazy evaluation of matches and inserts + * new strings in the dictionary only for unmatched strings or for short + * matches. It is used only for the fast compression options. + */ +function deflate_fast(s, flush) { + var hash_head; /* head of the hash chain */ + var bflush; /* set if current block must be flushed */ + + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the next match, plus MIN_MATCH bytes to insert the + * string following the next match. + */ + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; /* flush the current block */ + } + } + + /* Insert the string window[strstart .. strstart+2] in the + * dictionary, and set hash_head to the head of the hash chain: + */ + hash_head = 0/*NIL*/; + if (s.lookahead >= MIN_MATCH) { + /*** INSERT_STRING(s, s.strstart, hash_head); ***/ + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + /***/ + } + + /* Find the longest match, discarding those <= prev_length. + * At this point we have always match_length < MIN_MATCH + */ + if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) { + /* To simplify the code, we prevent matches with the string + * of window index 0 (in particular we have to avoid a match + * of the string with itself at the start of the input file). + */ + s.match_length = longest_match(s, hash_head); + /* longest_match() sets match_start */ + } + if (s.match_length >= MIN_MATCH) { + // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only + + /*** _tr_tally_dist(s, s.strstart - s.match_start, + s.match_length - MIN_MATCH, bflush); ***/ + bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); + + s.lookahead -= s.match_length; + + /* Insert new strings in the hash table only if the match length + * is not too large. This saves time but degrades compression. + */ + if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) { + s.match_length--; /* string at strstart already in table */ + do { + s.strstart++; + /*** INSERT_STRING(s, s.strstart, hash_head); ***/ + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + /***/ + /* strstart never exceeds WSIZE-MAX_MATCH, so there are + * always MIN_MATCH bytes ahead. + */ + } while (--s.match_length !== 0); + s.strstart++; + } else + { + s.strstart += s.match_length; + s.match_length = 0; + s.ins_h = s.window[s.strstart]; + /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */ + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask; + +//#if MIN_MATCH != 3 +// Call UPDATE_HASH() MIN_MATCH-3 more times +//#endif + /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not + * matter since it will be recomputed at next deflate call. + */ + } + } else { + /* No match, output a literal byte */ + //Tracevv((stderr,"%c", s.window[s.strstart])); + /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + + s.lookahead--; + s.strstart++; + } + if (bflush) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + } + s.insert = ((s.strstart < (MIN_MATCH-1)) ? s.strstart : MIN_MATCH-1); + if (flush === Z_FINISH) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + if (s.last_lit) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + return BS_BLOCK_DONE; +} + +/* =========================================================================== + * Same as above, but achieves better compression. We use a lazy + * evaluation for matches: a match is finally adopted only if there is + * no better match at the next window position. + */ +function deflate_slow(s, flush) { + var hash_head; /* head of hash chain */ + var bflush; /* set if current block must be flushed */ + + var max_insert; + + /* Process the input block. */ + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the next match, plus MIN_MATCH bytes to insert the + * string following the next match. + */ + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { break; } /* flush the current block */ + } + + /* Insert the string window[strstart .. strstart+2] in the + * dictionary, and set hash_head to the head of the hash chain: + */ + hash_head = 0/*NIL*/; + if (s.lookahead >= MIN_MATCH) { + /*** INSERT_STRING(s, s.strstart, hash_head); ***/ + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + /***/ + } + + /* Find the longest match, discarding those <= prev_length. + */ + s.prev_length = s.match_length; + s.prev_match = s.match_start; + s.match_length = MIN_MATCH-1; + + if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match && + s.strstart - hash_head <= (s.w_size-MIN_LOOKAHEAD)/*MAX_DIST(s)*/) { + /* To simplify the code, we prevent matches with the string + * of window index 0 (in particular we have to avoid a match + * of the string with itself at the start of the input file). + */ + s.match_length = longest_match(s, hash_head); + /* longest_match() sets match_start */ + + if (s.match_length <= 5 && + (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) { + + /* If prev_match is also MIN_MATCH, match_start is garbage + * but we will ignore the current match anyway. + */ + s.match_length = MIN_MATCH-1; + } + } + /* If there was a match at the previous step and the current + * match is not better, output the previous match: + */ + if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { + max_insert = s.strstart + s.lookahead - MIN_MATCH; + /* Do not insert strings in hash table beyond this. */ + + //check_match(s, s.strstart-1, s.prev_match, s.prev_length); + + /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match, + s.prev_length - MIN_MATCH, bflush);***/ + bflush = trees._tr_tally(s, s.strstart - 1- s.prev_match, s.prev_length - MIN_MATCH); + /* Insert in hash table all strings up to the end of the match. + * strstart-1 and strstart are already inserted. If there is not + * enough lookahead, the last two strings are not inserted in + * the hash table. + */ + s.lookahead -= s.prev_length-1; + s.prev_length -= 2; + do { + if (++s.strstart <= max_insert) { + /*** INSERT_STRING(s, s.strstart, hash_head); ***/ + s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + /***/ + } + } while (--s.prev_length !== 0); + s.match_available = 0; + s.match_length = MIN_MATCH-1; + s.strstart++; + + if (bflush) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + + } else if (s.match_available) { + /* If there was no match at the previous position, output a + * single literal. If there was a match but the current match + * is longer, truncate the previous match to a single literal. + */ + //Tracevv((stderr,"%c", s->window[s->strstart-1])); + /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/ + bflush = trees._tr_tally(s, 0, s.window[s.strstart-1]); + + if (bflush) { + /*** FLUSH_BLOCK_ONLY(s, 0) ***/ + flush_block_only(s, false); + /***/ + } + s.strstart++; + s.lookahead--; + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } else { + /* There is no previous match to compare with, wait for + * the next step to decide. + */ + s.match_available = 1; + s.strstart++; + s.lookahead--; + } + } + //Assert (flush != Z_NO_FLUSH, "no flush?"); + if (s.match_available) { + //Tracevv((stderr,"%c", s->window[s->strstart-1])); + /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/ + bflush = trees._tr_tally(s, 0, s.window[s.strstart-1]); + + s.match_available = 0; + } + s.insert = s.strstart < MIN_MATCH-1 ? s.strstart : MIN_MATCH-1; + if (flush === Z_FINISH) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + if (s.last_lit) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + + return BS_BLOCK_DONE; +} + + +/* =========================================================================== + * For Z_RLE, simply look for runs of bytes, generate matches only of distance + * one. Do not maintain a hash table. (It will be regenerated if this run of + * deflate switches away from Z_RLE.) + */ +function deflate_rle(s, flush) { + var bflush; /* set if current block must be flushed */ + var prev; /* byte at distance one to match */ + var scan, strend; /* scan goes up to strend for length of run */ + + var _win = s.window; + + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the longest run, plus one for the unrolled loop. + */ + if (s.lookahead <= MAX_MATCH) { + fill_window(s); + if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { break; } /* flush the current block */ + } + + /* See how many times the previous byte repeats */ + s.match_length = 0; + if (s.lookahead >= MIN_MATCH && s.strstart > 0) { + scan = s.strstart - 1; + prev = _win[scan]; + if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { + strend = s.strstart + MAX_MATCH; + do { + /*jshint noempty:false*/ + } while (prev === _win[++scan] && prev === _win[++scan] && + prev === _win[++scan] && prev === _win[++scan] && + prev === _win[++scan] && prev === _win[++scan] && + prev === _win[++scan] && prev === _win[++scan] && + scan < strend); + s.match_length = MAX_MATCH - (strend - scan); + if (s.match_length > s.lookahead) { + s.match_length = s.lookahead; + } + } + //Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan"); + } + + /* Emit match if have run of MIN_MATCH or longer, else emit literal */ + if (s.match_length >= MIN_MATCH) { + //check_match(s, s.strstart, s.strstart - 1, s.match_length); + + /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/ + bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH); + + s.lookahead -= s.match_length; + s.strstart += s.match_length; + s.match_length = 0; + } else { + /* No match, output a literal byte */ + //Tracevv((stderr,"%c", s->window[s->strstart])); + /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + + s.lookahead--; + s.strstart++; + } + if (bflush) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + } + s.insert = 0; + if (flush === Z_FINISH) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + if (s.last_lit) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + return BS_BLOCK_DONE; +} + +/* =========================================================================== + * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table. + * (It will be regenerated if this run of deflate switches away from Huffman.) + */ +function deflate_huff(s, flush) { + var bflush; /* set if current block must be flushed */ + + for (;;) { + /* Make sure that we have a literal to write. */ + if (s.lookahead === 0) { + fill_window(s); + if (s.lookahead === 0) { + if (flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + break; /* flush the current block */ + } + } + + /* Output a literal byte */ + s.match_length = 0; + //Tracevv((stderr,"%c", s->window[s->strstart])); + /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + if (bflush) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + } + s.insert = 0; + if (flush === Z_FINISH) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + if (s.last_lit) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + return BS_BLOCK_DONE; +} + +/* Values for max_lazy_match, good_match and max_chain_length, depending on + * the desired pack level (0..9). The values given below have been tuned to + * exclude worst case performance for pathological files. Better values may be + * found for specific files. + */ +var Config = function (good_length, max_lazy, nice_length, max_chain, func) { + this.good_length = good_length; + this.max_lazy = max_lazy; + this.nice_length = nice_length; + this.max_chain = max_chain; + this.func = func; +}; + +var configuration_table; + +configuration_table = [ + /* good lazy nice chain */ + new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */ + new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */ + new Config(4, 5, 16, 8, deflate_fast), /* 2 */ + new Config(4, 6, 32, 32, deflate_fast), /* 3 */ + + new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */ + new Config(8, 16, 32, 32, deflate_slow), /* 5 */ + new Config(8, 16, 128, 128, deflate_slow), /* 6 */ + new Config(8, 32, 128, 256, deflate_slow), /* 7 */ + new Config(32, 128, 258, 1024, deflate_slow), /* 8 */ + new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */ +]; + + +/* =========================================================================== + * Initialize the "longest match" routines for a new zlib stream + */ +function lm_init(s) { + s.window_size = 2 * s.w_size; + + /*** CLEAR_HASH(s); ***/ + zero(s.head); // Fill with NIL (= 0); + + /* Set the default configuration parameters: + */ + s.max_lazy_match = configuration_table[s.level].max_lazy; + s.good_match = configuration_table[s.level].good_length; + s.nice_match = configuration_table[s.level].nice_length; + s.max_chain_length = configuration_table[s.level].max_chain; + + s.strstart = 0; + s.block_start = 0; + s.lookahead = 0; + s.insert = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + s.ins_h = 0; +} + + +function DeflateState() { + this.strm = null; /* pointer back to this zlib stream */ + this.status = 0; /* as the name implies */ + this.pending_buf = null; /* output still pending */ + this.pending_buf_size = 0; /* size of pending_buf */ + this.pending_out = 0; /* next pending byte to output to the stream */ + this.pending = 0; /* nb of bytes in the pending buffer */ + this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */ + this.gzhead = null; /* gzip header information to write */ + this.gzindex = 0; /* where in extra, name, or comment */ + this.method = Z_DEFLATED; /* can only be DEFLATED */ + this.last_flush = -1; /* value of flush param for previous deflate call */ + + this.w_size = 0; /* LZ77 window size (32K by default) */ + this.w_bits = 0; /* log2(w_size) (8..16) */ + this.w_mask = 0; /* w_size - 1 */ + + this.window = null; + /* Sliding window. Input bytes are read into the second half of the window, + * and move to the first half later to keep a dictionary of at least wSize + * bytes. With this organization, matches are limited to a distance of + * wSize-MAX_MATCH bytes, but this ensures that IO is always + * performed with a length multiple of the block size. + */ + + this.window_size = 0; + /* Actual size of window: 2*wSize, except when the user input buffer + * is directly used as sliding window. + */ + + this.prev = null; + /* Link to older string with same hash index. To limit the size of this + * array to 64K, this link is maintained only for the last 32K strings. + * An index in this array is thus a window index modulo 32K. + */ + + this.head = null; /* Heads of the hash chains or NIL. */ + + this.ins_h = 0; /* hash index of string to be inserted */ + this.hash_size = 0; /* number of elements in hash table */ + this.hash_bits = 0; /* log2(hash_size) */ + this.hash_mask = 0; /* hash_size-1 */ + + this.hash_shift = 0; + /* Number of bits by which ins_h must be shifted at each input + * step. It must be such that after MIN_MATCH steps, the oldest + * byte no longer takes part in the hash key, that is: + * hash_shift * MIN_MATCH >= hash_bits + */ + + this.block_start = 0; + /* Window position at the beginning of the current output block. Gets + * negative when the window is moved backwards. + */ + + this.match_length = 0; /* length of best match */ + this.prev_match = 0; /* previous match */ + this.match_available = 0; /* set if previous match exists */ + this.strstart = 0; /* start of string to insert */ + this.match_start = 0; /* start of matching string */ + this.lookahead = 0; /* number of valid bytes ahead in window */ + + this.prev_length = 0; + /* Length of the best match at previous step. Matches not greater than this + * are discarded. This is used in the lazy match evaluation. + */ + + this.max_chain_length = 0; + /* To speed up deflation, hash chains are never searched beyond this + * length. A higher limit improves compression ratio but degrades the + * speed. + */ + + this.max_lazy_match = 0; + /* Attempt to find a better match only when the current match is strictly + * smaller than this value. This mechanism is used only for compression + * levels >= 4. + */ + // That's alias to max_lazy_match, don't use directly + //this.max_insert_length = 0; + /* Insert new strings in the hash table only if the match length is not + * greater than this length. This saves time but degrades compression. + * max_insert_length is used only for compression levels <= 3. + */ + + this.level = 0; /* compression level (1..9) */ + this.strategy = 0; /* favor or force Huffman coding*/ + + this.good_match = 0; + /* Use a faster search when the previous match is longer than this */ + + this.nice_match = 0; /* Stop searching when current match exceeds this */ + + /* used by trees.c: */ + + /* Didn't use ct_data typedef below to suppress compiler warning */ + + // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ + // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ + // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ + + // Use flat array of DOUBLE size, with interleaved fata, + // because JS does not support effective + this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2); + this.dyn_dtree = new utils.Buf16((2*D_CODES+1) * 2); + this.bl_tree = new utils.Buf16((2*BL_CODES+1) * 2); + zero(this.dyn_ltree); + zero(this.dyn_dtree); + zero(this.bl_tree); + + this.l_desc = null; /* desc. for literal tree */ + this.d_desc = null; /* desc. for distance tree */ + this.bl_desc = null; /* desc. for bit length tree */ + + //ush bl_count[MAX_BITS+1]; + this.bl_count = new utils.Buf16(MAX_BITS+1); + /* number of codes at each bit length for an optimal tree */ + + //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */ + this.heap = new utils.Buf16(2*L_CODES+1); /* heap used to build the Huffman trees */ + zero(this.heap); + + this.heap_len = 0; /* number of elements in the heap */ + this.heap_max = 0; /* element of largest frequency */ + /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. + * The same heap array is used to build all trees. + */ + + this.depth = new utils.Buf16(2*L_CODES+1); //uch depth[2*L_CODES+1]; + zero(this.depth); + /* Depth of each subtree used as tie breaker for trees of equal frequency + */ + + this.l_buf = 0; /* buffer index for literals or lengths */ + + this.lit_bufsize = 0; + /* Size of match buffer for literals/lengths. There are 4 reasons for + * limiting lit_bufsize to 64K: + * - frequencies can be kept in 16 bit counters + * - if compression is not successful for the first block, all input + * data is still in the window so we can still emit a stored block even + * when input comes from standard input. (This can also be done for + * all blocks if lit_bufsize is not greater than 32K.) + * - if compression is not successful for a file smaller than 64K, we can + * even emit a stored file instead of a stored block (saving 5 bytes). + * This is applicable only for zip (not gzip or zlib). + * - creating new Huffman trees less frequently may not provide fast + * adaptation to changes in the input data statistics. (Take for + * example a binary file with poorly compressible code followed by + * a highly compressible string table.) Smaller buffer sizes give + * fast adaptation but have of course the overhead of transmitting + * trees more frequently. + * - I can't count above 4 + */ + + this.last_lit = 0; /* running index in l_buf */ + + this.d_buf = 0; + /* Buffer index for distances. To simplify the code, d_buf and l_buf have + * the same number of elements. To use different lengths, an extra flag + * array would be necessary. + */ + + this.opt_len = 0; /* bit length of current block with optimal trees */ + this.static_len = 0; /* bit length of current block with static trees */ + this.matches = 0; /* number of string matches in current block */ + this.insert = 0; /* bytes at end of window left to insert */ + + + this.bi_buf = 0; + /* Output buffer. bits are inserted starting at the bottom (least + * significant bits). + */ + this.bi_valid = 0; + /* Number of valid bits in bi_buf. All bits above the last valid bit + * are always zero. + */ + + // Used for window memory init. We safely ignore it for JS. That makes + // sense only for pointers and memory check tools. + //this.high_water = 0; + /* High water mark offset in window for initialized bytes -- bytes above + * this are set to zero in order to avoid memory check warnings when + * longest match routines access bytes past the input. This is then + * updated to the new high water mark. + */ +} + + +function deflateResetKeep(strm) { + var s; + + if (!strm || !strm.state) { + return err(strm, Z_STREAM_ERROR); + } + + strm.total_in = strm.total_out = 0; + strm.data_type = Z_UNKNOWN; + + s = strm.state; + s.pending = 0; + s.pending_out = 0; + + if (s.wrap < 0) { + s.wrap = -s.wrap; + /* was made negative by deflate(..., Z_FINISH); */ + } + s.status = (s.wrap ? INIT_STATE : BUSY_STATE); + strm.adler = (s.wrap === 2) ? + 0 // crc32(0, Z_NULL, 0) + : + 1; // adler32(0, Z_NULL, 0) + s.last_flush = Z_NO_FLUSH; + trees._tr_init(s); + return Z_OK; +} + + +function deflateReset(strm) { + var ret = deflateResetKeep(strm); + if (ret === Z_OK) { + lm_init(strm.state); + } + return ret; +} + + +function deflateSetHeader(strm, head) { + if (!strm || !strm.state) { return Z_STREAM_ERROR; } + if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; } + strm.state.gzhead = head; + return Z_OK; +} + + +function deflateInit2(strm, level, method, windowBits, memLevel, strategy) { + if (!strm) { // === Z_NULL + return Z_STREAM_ERROR; + } + var wrap = 1; + + if (level === Z_DEFAULT_COMPRESSION) { + level = 6; + } + + if (windowBits < 0) { /* suppress zlib wrapper */ + wrap = 0; + windowBits = -windowBits; + } + + else if (windowBits > 15) { + wrap = 2; /* write gzip wrapper instead */ + windowBits -= 16; + } + + + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || + windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || + strategy < 0 || strategy > Z_FIXED) { + return err(strm, Z_STREAM_ERROR); + } + + + if (windowBits === 8) { + windowBits = 9; + } + /* until 256-byte window bug fixed */ + + var s = new DeflateState(); + + strm.state = s; + s.strm = strm; + + s.wrap = wrap; + s.gzhead = null; + s.w_bits = windowBits; + s.w_size = 1 << s.w_bits; + s.w_mask = s.w_size - 1; + + s.hash_bits = memLevel + 7; + s.hash_size = 1 << s.hash_bits; + s.hash_mask = s.hash_size - 1; + s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); + + s.window = new utils.Buf8(s.w_size * 2); + s.head = new utils.Buf16(s.hash_size); + s.prev = new utils.Buf16(s.w_size); + + // Don't need mem init magic for JS. + //s.high_water = 0; /* nothing written to s->window yet */ + + s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ + + s.pending_buf_size = s.lit_bufsize * 4; + s.pending_buf = new utils.Buf8(s.pending_buf_size); + + s.d_buf = s.lit_bufsize >> 1; + s.l_buf = (1 + 2) * s.lit_bufsize; + + s.level = level; + s.strategy = strategy; + s.method = method; + + return deflateReset(strm); +} + +function deflateInit(strm, level) { + return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); +} + + +function deflate(strm, flush) { + var old_flush, s; + var beg, val; // for gzip header write only + + if (!strm || !strm.state || + flush > Z_BLOCK || flush < 0) { + return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; + } + + s = strm.state; + + if (!strm.output || + (!strm.input && strm.avail_in !== 0) || + (s.status === FINISH_STATE && flush !== Z_FINISH)) { + return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR); + } + + s.strm = strm; /* just in case */ + old_flush = s.last_flush; + s.last_flush = flush; + + /* Write the header */ + if (s.status === INIT_STATE) { + + if (s.wrap === 2) { // GZIP header + strm.adler = 0; //crc32(0L, Z_NULL, 0); + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (!s.gzhead) { // s->gzhead == Z_NULL + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s.level === 9 ? 2 : + (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? + 4 : 0)); + put_byte(s, OS_CODE); + s.status = BUSY_STATE; + } + else { + put_byte(s, (s.gzhead.text ? 1 : 0) + + (s.gzhead.hcrc ? 2 : 0) + + (!s.gzhead.extra ? 0 : 4) + + (!s.gzhead.name ? 0 : 8) + + (!s.gzhead.comment ? 0 : 16) + ); + put_byte(s, s.gzhead.time & 0xff); + put_byte(s, (s.gzhead.time >> 8) & 0xff); + put_byte(s, (s.gzhead.time >> 16) & 0xff); + put_byte(s, (s.gzhead.time >> 24) & 0xff); + put_byte(s, s.level === 9 ? 2 : + (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? + 4 : 0)); + put_byte(s, s.gzhead.os & 0xff); + if (s.gzhead.extra && s.gzhead.extra.length) { + put_byte(s, s.gzhead.extra.length & 0xff); + put_byte(s, (s.gzhead.extra.length >> 8) & 0xff); + } + if (s.gzhead.hcrc) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0); + } + s.gzindex = 0; + s.status = EXTRA_STATE; + } + } + else // DEFLATE header + { + var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8; + var level_flags = -1; + + if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { + level_flags = 0; + } else if (s.level < 6) { + level_flags = 1; + } else if (s.level === 6) { + level_flags = 2; + } else { + level_flags = 3; + } + header |= (level_flags << 6); + if (s.strstart !== 0) { header |= PRESET_DICT; } + header += 31 - (header % 31); + + s.status = BUSY_STATE; + putShortMSB(s, header); + + /* Save the adler32 of the preset dictionary: */ + if (s.strstart !== 0) { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 0xffff); + } + strm.adler = 1; // adler32(0L, Z_NULL, 0); + } + } + +//#ifdef GZIP + if (s.status === EXTRA_STATE) { + if (s.gzhead.extra/* != Z_NULL*/) { + beg = s.pending; /* start of bytes to update crc */ + + while (s.gzindex < (s.gzhead.extra.length & 0xffff)) { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + break; + } + } + put_byte(s, s.gzhead.extra[s.gzindex] & 0xff); + s.gzindex++; + } + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (s.gzindex === s.gzhead.extra.length) { + s.gzindex = 0; + s.status = NAME_STATE; + } + } + else { + s.status = NAME_STATE; + } + } + if (s.status === NAME_STATE) { + if (s.gzhead.name/* != Z_NULL*/) { + beg = s.pending; /* start of bytes to update crc */ + //int val; + + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + // JS specific: little magic to add zero terminator to end of string + if (s.gzindex < s.gzhead.name.length) { + val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.gzindex = 0; + s.status = COMMENT_STATE; + } + } + else { + s.status = COMMENT_STATE; + } + } + if (s.status === COMMENT_STATE) { + if (s.gzhead.comment/* != Z_NULL*/) { + beg = s.pending; /* start of bytes to update crc */ + //int val; + + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + // JS specific: little magic to add zero terminator to end of string + if (s.gzindex < s.gzhead.comment.length) { + val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.status = HCRC_STATE; + } + } + else { + s.status = HCRC_STATE; + } + } + if (s.status === HCRC_STATE) { + if (s.gzhead.hcrc) { + if (s.pending + 2 > s.pending_buf_size) { + flush_pending(strm); + } + if (s.pending + 2 <= s.pending_buf_size) { + put_byte(s, strm.adler & 0xff); + put_byte(s, (strm.adler >> 8) & 0xff); + strm.adler = 0; //crc32(0L, Z_NULL, 0); + s.status = BUSY_STATE; + } + } + else { + s.status = BUSY_STATE; + } + } +//#endif + + /* Flush as much pending output as possible */ + if (s.pending !== 0) { + flush_pending(strm); + if (strm.avail_out === 0) { + /* Since avail_out is 0, deflate will be called again with + * more output space, but possibly with both pending and + * avail_in equal to zero. There won't be anything to do, + * but this is not an error situation so make sure we + * return OK instead of BUF_ERROR at next call of deflate: + */ + s.last_flush = -1; + return Z_OK; + } + + /* Make sure there is something to do and avoid duplicate consecutive + * flushes. For repeated and useless calls with Z_FINISH, we keep + * returning Z_STREAM_END instead of Z_BUF_ERROR. + */ + } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && + flush !== Z_FINISH) { + return err(strm, Z_BUF_ERROR); + } + + /* User must not provide more input after the first FINISH: */ + if (s.status === FINISH_STATE && strm.avail_in !== 0) { + return err(strm, Z_BUF_ERROR); + } + + /* Start a new block or continue the current one. + */ + if (strm.avail_in !== 0 || s.lookahead !== 0 || + (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) { + var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) : + (s.strategy === Z_RLE ? deflate_rle(s, flush) : + configuration_table[s.level].func(s, flush)); + + if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { + s.status = FINISH_STATE; + } + if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { + if (strm.avail_out === 0) { + s.last_flush = -1; + /* avoid BUF_ERROR next call, see above */ + } + return Z_OK; + /* If flush != Z_NO_FLUSH && avail_out == 0, the next call + * of deflate should use the same flush parameter to make sure + * that the flush is complete. So we don't have to output an + * empty block here, this will be done at next call. This also + * ensures that for a very small output buffer, we emit at most + * one empty block. + */ + } + if (bstate === BS_BLOCK_DONE) { + if (flush === Z_PARTIAL_FLUSH) { + trees._tr_align(s); + } + else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */ + + trees._tr_stored_block(s, 0, 0, false); + /* For a full flush, this empty block will be recognized + * as a special marker by inflate_sync(). + */ + if (flush === Z_FULL_FLUSH) { + /*** CLEAR_HASH(s); ***/ /* forget history */ + zero(s.head); // Fill with NIL (= 0); + + if (s.lookahead === 0) { + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + } + } + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */ + return Z_OK; + } + } + } + //Assert(strm->avail_out > 0, "bug2"); + //if (strm.avail_out <= 0) { throw new Error("bug2");} + + if (flush !== Z_FINISH) { return Z_OK; } + if (s.wrap <= 0) { return Z_STREAM_END; } + + /* Write the trailer */ + if (s.wrap === 2) { + put_byte(s, strm.adler & 0xff); + put_byte(s, (strm.adler >> 8) & 0xff); + put_byte(s, (strm.adler >> 16) & 0xff); + put_byte(s, (strm.adler >> 24) & 0xff); + put_byte(s, strm.total_in & 0xff); + put_byte(s, (strm.total_in >> 8) & 0xff); + put_byte(s, (strm.total_in >> 16) & 0xff); + put_byte(s, (strm.total_in >> 24) & 0xff); + } + else + { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 0xffff); + } + + flush_pending(strm); + /* If avail_out is zero, the application will call deflate again + * to flush the rest. + */ + if (s.wrap > 0) { s.wrap = -s.wrap; } + /* write the trailer only once! */ + return s.pending !== 0 ? Z_OK : Z_STREAM_END; +} + +function deflateEnd(strm) { + var status; + + if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) { + return Z_STREAM_ERROR; + } + + status = strm.state.status; + if (status !== INIT_STATE && + status !== EXTRA_STATE && + status !== NAME_STATE && + status !== COMMENT_STATE && + status !== HCRC_STATE && + status !== BUSY_STATE && + status !== FINISH_STATE + ) { + return err(strm, Z_STREAM_ERROR); + } + + strm.state = null; + + return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK; +} + +/* ========================================================================= + * Copy the source state to the destination state + */ +//function deflateCopy(dest, source) { +// +//} + +exports.deflateInit = deflateInit; +exports.deflateInit2 = deflateInit2; +exports.deflateReset = deflateReset; +exports.deflateResetKeep = deflateResetKeep; +exports.deflateSetHeader = deflateSetHeader; +exports.deflate = deflate; +exports.deflateEnd = deflateEnd; +exports.deflateInfo = 'pako deflate (from Nodeca project)'; + +/* Not implemented +exports.deflateBound = deflateBound; +exports.deflateCopy = deflateCopy; +exports.deflateSetDictionary = deflateSetDictionary; +exports.deflateParams = deflateParams; +exports.deflatePending = deflatePending; +exports.deflatePrime = deflatePrime; +exports.deflateTune = deflateTune; +*/ diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/gzheader.js b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/gzheader.js new file mode 100644 index 0000000..300bdee --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/gzheader.js @@ -0,0 +1,40 @@ +'use strict'; + + +function GZheader() { + /* true if compressed data believed to be text */ + this.text = 0; + /* modification time */ + this.time = 0; + /* extra flags (not used when writing a gzip file) */ + this.xflags = 0; + /* operating system */ + this.os = 0; + /* pointer to extra field or Z_NULL if none */ + this.extra = null; + /* extra field length (valid if extra != Z_NULL) */ + this.extra_len = 0; // Actually, we don't need it in JS, + // but leave for few code modifications + + // + // Setup limits is not necessary because in js we should not preallocate memory + // for inflate use constant limit in 65536 bytes + // + + /* space at extra (only when reading header) */ + // this.extra_max = 0; + /* pointer to zero-terminated file name or Z_NULL */ + this.name = ''; + /* space at name (only when reading header) */ + // this.name_max = 0; + /* pointer to zero-terminated comment or Z_NULL */ + this.comment = ''; + /* space at comment (only when reading header) */ + // this.comm_max = 0; + /* true if there was or will be a header crc */ + this.hcrc = 0; + /* true when done reading gzip header (not used when writing a gzip file) */ + this.done = false; +} + +module.exports = GZheader; diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/inffast.js b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/inffast.js new file mode 100644 index 0000000..a419f65 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/inffast.js @@ -0,0 +1,326 @@ +'use strict'; + +// See state defs from inflate.js +var BAD = 30; /* got a data error -- remain here until reset */ +var TYPE = 12; /* i: waiting for type bits, including last-flag bit */ + +/* + Decode literal, length, and distance codes and write out the resulting + literal and match bytes until either not enough input or output is + available, an end-of-block is encountered, or a data error is encountered. + When large enough input and output buffers are supplied to inflate(), for + example, a 16K input buffer and a 64K output buffer, more than 95% of the + inflate execution time is spent in this routine. + + Entry assumptions: + + state.mode === LEN + strm.avail_in >= 6 + strm.avail_out >= 258 + start >= strm.avail_out + state.bits < 8 + + On return, state.mode is one of: + + LEN -- ran out of enough output space or enough available input + TYPE -- reached end of block code, inflate() to interpret next block + BAD -- error in block data + + Notes: + + - The maximum input bits used by a length/distance pair is 15 bits for the + length code, 5 bits for the length extra, 15 bits for the distance code, + and 13 bits for the distance extra. This totals 48 bits, or six bytes. + Therefore if strm.avail_in >= 6, then there is enough input to avoid + checking for available input while decoding. + + - The maximum bytes that a single length/distance pair can output is 258 + bytes, which is the maximum length that can be coded. inflate_fast() + requires strm.avail_out >= 258 for each loop to avoid checking for + output space. + */ +module.exports = function inflate_fast(strm, start) { + var state; + var _in; /* local strm.input */ + var last; /* have enough input while in < last */ + var _out; /* local strm.output */ + var beg; /* inflate()'s initial strm.output */ + var end; /* while out < end, enough space available */ +//#ifdef INFLATE_STRICT + var dmax; /* maximum distance from zlib header */ +//#endif + var wsize; /* window size or zero if not using window */ + var whave; /* valid bytes in the window */ + var wnext; /* window write index */ + // Use `s_window` instead `window`, avoid conflict with instrumentation tools + var s_window; /* allocated sliding window, if wsize != 0 */ + var hold; /* local strm.hold */ + var bits; /* local strm.bits */ + var lcode; /* local strm.lencode */ + var dcode; /* local strm.distcode */ + var lmask; /* mask for first level of length codes */ + var dmask; /* mask for first level of distance codes */ + var here; /* retrieved table entry */ + var op; /* code bits, operation, extra bits, or */ + /* window position, window bytes to copy */ + var len; /* match length, unused bytes */ + var dist; /* match distance */ + var from; /* where to copy match from */ + var from_source; + + + var input, output; // JS specific, because we have no pointers + + /* copy state to local variables */ + state = strm.state; + //here = state.here; + _in = strm.next_in; + input = strm.input; + last = _in + (strm.avail_in - 5); + _out = strm.next_out; + output = strm.output; + beg = _out - (start - strm.avail_out); + end = _out + (strm.avail_out - 257); +//#ifdef INFLATE_STRICT + dmax = state.dmax; +//#endif + wsize = state.wsize; + whave = state.whave; + wnext = state.wnext; + s_window = state.window; + hold = state.hold; + bits = state.bits; + lcode = state.lencode; + dcode = state.distcode; + lmask = (1 << state.lenbits) - 1; + dmask = (1 << state.distbits) - 1; + + + /* decode literals and length/distances until end-of-block or not enough + input data or output space */ + + top: + do { + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + + here = lcode[hold & lmask]; + + dolen: + for (;;) { // Goto emulation + op = here >>> 24/*here.bits*/; + hold >>>= op; + bits -= op; + op = (here >>> 16) & 0xff/*here.op*/; + if (op === 0) { /* literal */ + //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + // "inflate: literal '%c'\n" : + // "inflate: literal 0x%02x\n", here.val)); + output[_out++] = here & 0xffff/*here.val*/; + } + else if (op & 16) { /* length base */ + len = here & 0xffff/*here.val*/; + op &= 15; /* number of extra bits */ + if (op) { + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + len += hold & ((1 << op) - 1); + hold >>>= op; + bits -= op; + } + //Tracevv((stderr, "inflate: length %u\n", len)); + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = dcode[hold & dmask]; + + dodist: + for (;;) { // goto emulation + op = here >>> 24/*here.bits*/; + hold >>>= op; + bits -= op; + op = (here >>> 16) & 0xff/*here.op*/; + + if (op & 16) { /* distance base */ + dist = here & 0xffff/*here.val*/; + op &= 15; /* number of extra bits */ + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + } + dist += hold & ((1 << op) - 1); +//#ifdef INFLATE_STRICT + if (dist > dmax) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD; + break top; + } +//#endif + hold >>>= op; + bits -= op; + //Tracevv((stderr, "inflate: distance %u\n", dist)); + op = _out - beg; /* max distance in output */ + if (dist > op) { /* see if copy from window */ + op = dist - op; /* distance back in window */ + if (op > whave) { + if (state.sane) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD; + break top; + } + +// (!) This block is disabled in zlib defailts, +// don't enable it for binary compatibility +//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR +// if (len <= op - whave) { +// do { +// output[_out++] = 0; +// } while (--len); +// continue top; +// } +// len -= op - whave; +// do { +// output[_out++] = 0; +// } while (--op > whave); +// if (op === 0) { +// from = _out - dist; +// do { +// output[_out++] = output[from++]; +// } while (--len); +// continue top; +// } +//#endif + } + from = 0; // window index + from_source = s_window; + if (wnext === 0) { /* very common case */ + from += wsize - op; + if (op < len) { /* some from window */ + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; /* rest from output */ + from_source = output; + } + } + else if (wnext < op) { /* wrap around window */ + from += wsize + wnext - op; + op -= wnext; + if (op < len) { /* some from end of window */ + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = 0; + if (wnext < len) { /* some from start of window */ + op = wnext; + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; /* rest from output */ + from_source = output; + } + } + } + else { /* contiguous in window */ + from += wnext - op; + if (op < len) { /* some from window */ + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; /* rest from output */ + from_source = output; + } + } + while (len > 2) { + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + len -= 3; + } + if (len) { + output[_out++] = from_source[from++]; + if (len > 1) { + output[_out++] = from_source[from++]; + } + } + } + else { + from = _out - dist; /* copy direct from output */ + do { /* minimum length is three */ + output[_out++] = output[from++]; + output[_out++] = output[from++]; + output[_out++] = output[from++]; + len -= 3; + } while (len > 2); + if (len) { + output[_out++] = output[from++]; + if (len > 1) { + output[_out++] = output[from++]; + } + } + } + } + else if ((op & 64) === 0) { /* 2nd level distance code */ + here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; + continue dodist; + } + else { + strm.msg = 'invalid distance code'; + state.mode = BAD; + break top; + } + + break; // need to emulate goto via "continue" + } + } + else if ((op & 64) === 0) { /* 2nd level length code */ + here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; + continue dolen; + } + else if (op & 32) { /* end-of-block */ + //Tracevv((stderr, "inflate: end of block\n")); + state.mode = TYPE; + break top; + } + else { + strm.msg = 'invalid literal/length code'; + state.mode = BAD; + break top; + } + + break; // need to emulate goto via "continue" + } + } while (_in < last && _out < end); + + /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ + len = bits >> 3; + _in -= len; + bits -= len << 3; + hold &= (1 << bits) - 1; + + /* update state and return */ + strm.next_in = _in; + strm.next_out = _out; + strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last)); + strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end)); + state.hold = hold; + state.bits = bits; + return; +}; diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/inflate.js b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/inflate.js new file mode 100644 index 0000000..a92af63 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/inflate.js @@ -0,0 +1,1503 @@ +'use strict'; + + +var utils = require('../utils/common'); +var adler32 = require('./adler32'); +var crc32 = require('./crc32'); +var inflate_fast = require('./inffast'); +var inflate_table = require('./inftrees'); + +var CODES = 0; +var LENS = 1; +var DISTS = 2; + +/* Public constants ==========================================================*/ +/* ===========================================================================*/ + + +/* Allowed flush values; see deflate() and inflate() below for details */ +//var Z_NO_FLUSH = 0; +//var Z_PARTIAL_FLUSH = 1; +//var Z_SYNC_FLUSH = 2; +//var Z_FULL_FLUSH = 3; +var Z_FINISH = 4; +var Z_BLOCK = 5; +var Z_TREES = 6; + + +/* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ +var Z_OK = 0; +var Z_STREAM_END = 1; +var Z_NEED_DICT = 2; +//var Z_ERRNO = -1; +var Z_STREAM_ERROR = -2; +var Z_DATA_ERROR = -3; +var Z_MEM_ERROR = -4; +var Z_BUF_ERROR = -5; +//var Z_VERSION_ERROR = -6; + +/* The deflate compression method */ +var Z_DEFLATED = 8; + + +/* STATES ====================================================================*/ +/* ===========================================================================*/ + + +var HEAD = 1; /* i: waiting for magic header */ +var FLAGS = 2; /* i: waiting for method and flags (gzip) */ +var TIME = 3; /* i: waiting for modification time (gzip) */ +var OS = 4; /* i: waiting for extra flags and operating system (gzip) */ +var EXLEN = 5; /* i: waiting for extra length (gzip) */ +var EXTRA = 6; /* i: waiting for extra bytes (gzip) */ +var NAME = 7; /* i: waiting for end of file name (gzip) */ +var COMMENT = 8; /* i: waiting for end of comment (gzip) */ +var HCRC = 9; /* i: waiting for header crc (gzip) */ +var DICTID = 10; /* i: waiting for dictionary check value */ +var DICT = 11; /* waiting for inflateSetDictionary() call */ +var TYPE = 12; /* i: waiting for type bits, including last-flag bit */ +var TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */ +var STORED = 14; /* i: waiting for stored size (length and complement) */ +var COPY_ = 15; /* i/o: same as COPY below, but only first time in */ +var COPY = 16; /* i/o: waiting for input or output to copy stored block */ +var TABLE = 17; /* i: waiting for dynamic block table lengths */ +var LENLENS = 18; /* i: waiting for code length code lengths */ +var CODELENS = 19; /* i: waiting for length/lit and distance code lengths */ +var LEN_ = 20; /* i: same as LEN below, but only first time in */ +var LEN = 21; /* i: waiting for length/lit/eob code */ +var LENEXT = 22; /* i: waiting for length extra bits */ +var DIST = 23; /* i: waiting for distance code */ +var DISTEXT = 24; /* i: waiting for distance extra bits */ +var MATCH = 25; /* o: waiting for output space to copy string */ +var LIT = 26; /* o: waiting for output space to write literal */ +var CHECK = 27; /* i: waiting for 32-bit check value */ +var LENGTH = 28; /* i: waiting for 32-bit length (gzip) */ +var DONE = 29; /* finished check, done -- remain here until reset */ +var BAD = 30; /* got a data error -- remain here until reset */ +var MEM = 31; /* got an inflate() memory error -- remain here until reset */ +var SYNC = 32; /* looking for synchronization bytes to restart inflate() */ + +/* ===========================================================================*/ + + + +var ENOUGH_LENS = 852; +var ENOUGH_DISTS = 592; +//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); + +var MAX_WBITS = 15; +/* 32K LZ77 window */ +var DEF_WBITS = MAX_WBITS; + + +function ZSWAP32(q) { + return (((q >>> 24) & 0xff) + + ((q >>> 8) & 0xff00) + + ((q & 0xff00) << 8) + + ((q & 0xff) << 24)); +} + + +function InflateState() { + this.mode = 0; /* current inflate mode */ + this.last = false; /* true if processing last block */ + this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */ + this.havedict = false; /* true if dictionary provided */ + this.flags = 0; /* gzip header method and flags (0 if zlib) */ + this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */ + this.check = 0; /* protected copy of check value */ + this.total = 0; /* protected copy of output count */ + // TODO: may be {} + this.head = null; /* where to save gzip header information */ + + /* sliding window */ + this.wbits = 0; /* log base 2 of requested window size */ + this.wsize = 0; /* window size or zero if not using window */ + this.whave = 0; /* valid bytes in the window */ + this.wnext = 0; /* window write index */ + this.window = null; /* allocated sliding window, if needed */ + + /* bit accumulator */ + this.hold = 0; /* input bit accumulator */ + this.bits = 0; /* number of bits in "in" */ + + /* for string and stored block copying */ + this.length = 0; /* literal or length of data to copy */ + this.offset = 0; /* distance back to copy string from */ + + /* for table and code decoding */ + this.extra = 0; /* extra bits needed */ + + /* fixed and dynamic code tables */ + this.lencode = null; /* starting table for length/literal codes */ + this.distcode = null; /* starting table for distance codes */ + this.lenbits = 0; /* index bits for lencode */ + this.distbits = 0; /* index bits for distcode */ + + /* dynamic table building */ + this.ncode = 0; /* number of code length code lengths */ + this.nlen = 0; /* number of length code lengths */ + this.ndist = 0; /* number of distance code lengths */ + this.have = 0; /* number of code lengths in lens[] */ + this.next = null; /* next available space in codes[] */ + + this.lens = new utils.Buf16(320); /* temporary storage for code lengths */ + this.work = new utils.Buf16(288); /* work area for code table building */ + + /* + because we don't have pointers in js, we use lencode and distcode directly + as buffers so we don't need codes + */ + //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */ + this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */ + this.distdyn = null; /* dynamic table for distance codes (JS specific) */ + this.sane = 0; /* if false, allow invalid distance too far */ + this.back = 0; /* bits back of last unprocessed length/lit */ + this.was = 0; /* initial length of match */ +} + +function inflateResetKeep(strm) { + var state; + + if (!strm || !strm.state) { return Z_STREAM_ERROR; } + state = strm.state; + strm.total_in = strm.total_out = state.total = 0; + strm.msg = ''; /*Z_NULL*/ + if (state.wrap) { /* to support ill-conceived Java test suite */ + strm.adler = state.wrap & 1; + } + state.mode = HEAD; + state.last = 0; + state.havedict = 0; + state.dmax = 32768; + state.head = null/*Z_NULL*/; + state.hold = 0; + state.bits = 0; + //state.lencode = state.distcode = state.next = state.codes; + state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); + state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); + + state.sane = 1; + state.back = -1; + //Tracev((stderr, "inflate: reset\n")); + return Z_OK; +} + +function inflateReset(strm) { + var state; + + if (!strm || !strm.state) { return Z_STREAM_ERROR; } + state = strm.state; + state.wsize = 0; + state.whave = 0; + state.wnext = 0; + return inflateResetKeep(strm); + +} + +function inflateReset2(strm, windowBits) { + var wrap; + var state; + + /* get the state */ + if (!strm || !strm.state) { return Z_STREAM_ERROR; } + state = strm.state; + + /* extract wrap request from windowBits parameter */ + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } + else { + wrap = (windowBits >> 4) + 1; + if (windowBits < 48) { + windowBits &= 15; + } + } + + /* set number of window bits, free window if different */ + if (windowBits && (windowBits < 8 || windowBits > 15)) { + return Z_STREAM_ERROR; + } + if (state.window !== null && state.wbits !== windowBits) { + state.window = null; + } + + /* update state and reset the rest of it */ + state.wrap = wrap; + state.wbits = windowBits; + return inflateReset(strm); +} + +function inflateInit2(strm, windowBits) { + var ret; + var state; + + if (!strm) { return Z_STREAM_ERROR; } + //strm.msg = Z_NULL; /* in case we return an error */ + + state = new InflateState(); + + //if (state === Z_NULL) return Z_MEM_ERROR; + //Tracev((stderr, "inflate: allocated\n")); + strm.state = state; + state.window = null/*Z_NULL*/; + ret = inflateReset2(strm, windowBits); + if (ret !== Z_OK) { + strm.state = null/*Z_NULL*/; + } + return ret; +} + +function inflateInit(strm) { + return inflateInit2(strm, DEF_WBITS); +} + + +/* + Return state with length and distance decoding tables and index sizes set to + fixed code decoding. Normally this returns fixed tables from inffixed.h. + If BUILDFIXED is defined, then instead this routine builds the tables the + first time it's called, and returns those tables the first time and + thereafter. This reduces the size of the code by about 2K bytes, in + exchange for a little execution time. However, BUILDFIXED should not be + used for threaded applications, since the rewriting of the tables and virgin + may not be thread-safe. + */ +var virgin = true; + +var lenfix, distfix; // We have no pointers in JS, so keep tables separate + +function fixedtables(state) { + /* build fixed huffman tables if first call (may not be thread safe) */ + if (virgin) { + var sym; + + lenfix = new utils.Buf32(512); + distfix = new utils.Buf32(32); + + /* literal/length table */ + sym = 0; + while (sym < 144) { state.lens[sym++] = 8; } + while (sym < 256) { state.lens[sym++] = 9; } + while (sym < 280) { state.lens[sym++] = 7; } + while (sym < 288) { state.lens[sym++] = 8; } + + inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, {bits: 9}); + + /* distance table */ + sym = 0; + while (sym < 32) { state.lens[sym++] = 5; } + + inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, {bits: 5}); + + /* do this just once */ + virgin = false; + } + + state.lencode = lenfix; + state.lenbits = 9; + state.distcode = distfix; + state.distbits = 5; +} + + +/* + Update the window with the last wsize (normally 32K) bytes written before + returning. If window does not exist yet, create it. This is only called + when a window is already in use, or when output has been written during this + inflate call, but the end of the deflate stream has not been reached yet. + It is also called to create a window for dictionary data when a dictionary + is loaded. + + Providing output buffers larger than 32K to inflate() should provide a speed + advantage, since only the last 32K of output is copied to the sliding window + upon return from inflate(), and since all distances after the first 32K of + output will fall in the output data, making match copies simpler and faster. + The advantage may be dependent on the size of the processor's data caches. + */ +function updatewindow(strm, src, end, copy) { + var dist; + var state = strm.state; + + /* if it hasn't been done already, allocate space for the window */ + if (state.window === null) { + state.wsize = 1 << state.wbits; + state.wnext = 0; + state.whave = 0; + + state.window = new utils.Buf8(state.wsize); + } + + /* copy state->wsize or less output bytes into the circular window */ + if (copy >= state.wsize) { + utils.arraySet(state.window,src, end - state.wsize, state.wsize, 0); + state.wnext = 0; + state.whave = state.wsize; + } + else { + dist = state.wsize - state.wnext; + if (dist > copy) { + dist = copy; + } + //zmemcpy(state->window + state->wnext, end - copy, dist); + utils.arraySet(state.window,src, end - copy, dist, state.wnext); + copy -= dist; + if (copy) { + //zmemcpy(state->window, end - copy, copy); + utils.arraySet(state.window,src, end - copy, copy, 0); + state.wnext = copy; + state.whave = state.wsize; + } + else { + state.wnext += dist; + if (state.wnext === state.wsize) { state.wnext = 0; } + if (state.whave < state.wsize) { state.whave += dist; } + } + } + return 0; +} + +function inflate(strm, flush) { + var state; + var input, output; // input/output buffers + var next; /* next input INDEX */ + var put; /* next output INDEX */ + var have, left; /* available input and output */ + var hold; /* bit buffer */ + var bits; /* bits in bit buffer */ + var _in, _out; /* save starting available input and output */ + var copy; /* number of stored or match bytes to copy */ + var from; /* where to copy match bytes from */ + var from_source; + var here = 0; /* current decoding table entry */ + var here_bits, here_op, here_val; // paked "here" denormalized (JS specific) + //var last; /* parent table entry */ + var last_bits, last_op, last_val; // paked "last" denormalized (JS specific) + var len; /* length to copy for repeats, bits to drop */ + var ret; /* return code */ + var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */ + var opts; + + var n; // temporary var for NEED_BITS + + var order = /* permutation of code lengths */ + [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; + + + if (!strm || !strm.state || !strm.output || + (!strm.input && strm.avail_in !== 0)) { + return Z_STREAM_ERROR; + } + + state = strm.state; + if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */ + + + //--- LOAD() --- + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + //--- + + _in = have; + _out = left; + ret = Z_OK; + + inf_leave: // goto emulation + for (;;) { + switch (state.mode) { + case HEAD: + if (state.wrap === 0) { + state.mode = TYPEDO; + break; + } + //=== NEEDBITS(16); + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */ + state.check = 0/*crc32(0L, Z_NULL, 0)*/; + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32(state.check, hbuf, 2, 0); + //===// + + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = FLAGS; + break; + } + state.flags = 0; /* expect zlib header */ + if (state.head) { + state.head.done = false; + } + if (!(state.wrap & 1) || /* check if zlib header allowed */ + (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) { + strm.msg = 'incorrect header check'; + state.mode = BAD; + break; + } + if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) { + strm.msg = 'unknown compression method'; + state.mode = BAD; + break; + } + //--- DROPBITS(4) ---// + hold >>>= 4; + bits -= 4; + //---// + len = (hold & 0x0f)/*BITS(4)*/ + 8; + if (state.wbits === 0) { + state.wbits = len; + } + else if (len > state.wbits) { + strm.msg = 'invalid window size'; + state.mode = BAD; + break; + } + state.dmax = 1 << len; + //Tracev((stderr, "inflate: zlib header ok\n")); + strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; + state.mode = hold & 0x200 ? DICTID : TYPE; + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + break; + case FLAGS: + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.flags = hold; + if ((state.flags & 0xff) !== Z_DEFLATED) { + strm.msg = 'unknown compression method'; + state.mode = BAD; + break; + } + if (state.flags & 0xe000) { + strm.msg = 'unknown header flags set'; + state.mode = BAD; + break; + } + if (state.head) { + state.head.text = ((hold >> 8) & 1); + } + if (state.flags & 0x0200) { + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32(state.check, hbuf, 2, 0); + //===// + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = TIME; + /* falls through */ + case TIME: + //=== NEEDBITS(32); */ + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (state.head) { + state.head.time = hold; + } + if (state.flags & 0x0200) { + //=== CRC4(state.check, hold) + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + hbuf[2] = (hold >>> 16) & 0xff; + hbuf[3] = (hold >>> 24) & 0xff; + state.check = crc32(state.check, hbuf, 4, 0); + //=== + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = OS; + /* falls through */ + case OS: + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (state.head) { + state.head.xflags = (hold & 0xff); + state.head.os = (hold >> 8); + } + if (state.flags & 0x0200) { + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32(state.check, hbuf, 2, 0); + //===// + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = EXLEN; + /* falls through */ + case EXLEN: + if (state.flags & 0x0400) { + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.length = hold; + if (state.head) { + state.head.extra_len = hold; + } + if (state.flags & 0x0200) { + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32(state.check, hbuf, 2, 0); + //===// + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + } + else if (state.head) { + state.head.extra = null/*Z_NULL*/; + } + state.mode = EXTRA; + /* falls through */ + case EXTRA: + if (state.flags & 0x0400) { + copy = state.length; + if (copy > have) { copy = have; } + if (copy) { + if (state.head) { + len = state.head.extra_len - state.length; + if (!state.head.extra) { + // Use untyped array for more conveniend processing later + state.head.extra = new Array(state.head.extra_len); + } + utils.arraySet( + state.head.extra, + input, + next, + // extra field is limited to 65536 bytes + // - no need for additional size check + copy, + /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/ + len + ); + //zmemcpy(state.head.extra + len, next, + // len + copy > state.head.extra_max ? + // state.head.extra_max - len : copy); + } + if (state.flags & 0x0200) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + state.length -= copy; + } + if (state.length) { break inf_leave; } + } + state.length = 0; + state.mode = NAME; + /* falls through */ + case NAME: + if (state.flags & 0x0800) { + if (have === 0) { break inf_leave; } + copy = 0; + do { + // TODO: 2 or 1 bytes? + len = input[next + copy++]; + /* use constant limit because in js we should not preallocate memory */ + if (state.head && len && + (state.length < 65536 /*state.head.name_max*/)) { + state.head.name += String.fromCharCode(len); + } + } while (len && copy < have); + + if (state.flags & 0x0200) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { break inf_leave; } + } + else if (state.head) { + state.head.name = null; + } + state.length = 0; + state.mode = COMMENT; + /* falls through */ + case COMMENT: + if (state.flags & 0x1000) { + if (have === 0) { break inf_leave; } + copy = 0; + do { + len = input[next + copy++]; + /* use constant limit because in js we should not preallocate memory */ + if (state.head && len && + (state.length < 65536 /*state.head.comm_max*/)) { + state.head.comment += String.fromCharCode(len); + } + } while (len && copy < have); + if (state.flags & 0x0200) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { break inf_leave; } + } + else if (state.head) { + state.head.comment = null; + } + state.mode = HCRC; + /* falls through */ + case HCRC: + if (state.flags & 0x0200) { + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (hold !== (state.check & 0xffff)) { + strm.msg = 'header crc mismatch'; + state.mode = BAD; + break; + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + } + if (state.head) { + state.head.hcrc = ((state.flags >> 9) & 1); + state.head.done = true; + } + strm.adler = state.check = 0 /*crc32(0L, Z_NULL, 0)*/; + state.mode = TYPE; + break; + case DICTID: + //=== NEEDBITS(32); */ + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + strm.adler = state.check = ZSWAP32(hold); + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = DICT; + /* falls through */ + case DICT: + if (state.havedict === 0) { + //--- RESTORE() --- + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + //--- + return Z_NEED_DICT; + } + strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; + state.mode = TYPE; + /* falls through */ + case TYPE: + if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; } + /* falls through */ + case TYPEDO: + if (state.last) { + //--- BYTEBITS() ---// + hold >>>= bits & 7; + bits -= bits & 7; + //---// + state.mode = CHECK; + break; + } + //=== NEEDBITS(3); */ + while (bits < 3) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.last = (hold & 0x01)/*BITS(1)*/; + //--- DROPBITS(1) ---// + hold >>>= 1; + bits -= 1; + //---// + + switch ((hold & 0x03)/*BITS(2)*/) { + case 0: /* stored block */ + //Tracev((stderr, "inflate: stored block%s\n", + // state.last ? " (last)" : "")); + state.mode = STORED; + break; + case 1: /* fixed block */ + fixedtables(state); + //Tracev((stderr, "inflate: fixed codes block%s\n", + // state.last ? " (last)" : "")); + state.mode = LEN_; /* decode codes */ + if (flush === Z_TREES) { + //--- DROPBITS(2) ---// + hold >>>= 2; + bits -= 2; + //---// + break inf_leave; + } + break; + case 2: /* dynamic block */ + //Tracev((stderr, "inflate: dynamic codes block%s\n", + // state.last ? " (last)" : "")); + state.mode = TABLE; + break; + case 3: + strm.msg = 'invalid block type'; + state.mode = BAD; + } + //--- DROPBITS(2) ---// + hold >>>= 2; + bits -= 2; + //---// + break; + case STORED: + //--- BYTEBITS() ---// /* go to byte boundary */ + hold >>>= bits & 7; + bits -= bits & 7; + //---// + //=== NEEDBITS(32); */ + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) { + strm.msg = 'invalid stored block lengths'; + state.mode = BAD; + break; + } + state.length = hold & 0xffff; + //Tracev((stderr, "inflate: stored length %u\n", + // state.length)); + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = COPY_; + if (flush === Z_TREES) { break inf_leave; } + /* falls through */ + case COPY_: + state.mode = COPY; + /* falls through */ + case COPY: + copy = state.length; + if (copy) { + if (copy > have) { copy = have; } + if (copy > left) { copy = left; } + if (copy === 0) { break inf_leave; } + //--- zmemcpy(put, next, copy); --- + utils.arraySet(output, input, next, copy, put); + //---// + have -= copy; + next += copy; + left -= copy; + put += copy; + state.length -= copy; + break; + } + //Tracev((stderr, "inflate: stored end\n")); + state.mode = TYPE; + break; + case TABLE: + //=== NEEDBITS(14); */ + while (bits < 14) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257; + //--- DROPBITS(5) ---// + hold >>>= 5; + bits -= 5; + //---// + state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1; + //--- DROPBITS(5) ---// + hold >>>= 5; + bits -= 5; + //---// + state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4; + //--- DROPBITS(4) ---// + hold >>>= 4; + bits -= 4; + //---// +//#ifndef PKZIP_BUG_WORKAROUND + if (state.nlen > 286 || state.ndist > 30) { + strm.msg = 'too many length or distance symbols'; + state.mode = BAD; + break; + } +//#endif + //Tracev((stderr, "inflate: table sizes ok\n")); + state.have = 0; + state.mode = LENLENS; + /* falls through */ + case LENLENS: + while (state.have < state.ncode) { + //=== NEEDBITS(3); + while (bits < 3) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.lens[order[state.have++]] = (hold & 0x07);//BITS(3); + //--- DROPBITS(3) ---// + hold >>>= 3; + bits -= 3; + //---// + } + while (state.have < 19) { + state.lens[order[state.have++]] = 0; + } + // We have separate tables & no pointers. 2 commented lines below not needed. + //state.next = state.codes; + //state.lencode = state.next; + // Switch to use dynamic table + state.lencode = state.lendyn; + state.lenbits = 7; + + opts = {bits: state.lenbits}; + ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + + if (ret) { + strm.msg = 'invalid code lengths set'; + state.mode = BAD; + break; + } + //Tracev((stderr, "inflate: code lengths ok\n")); + state.have = 0; + state.mode = CODELENS; + /* falls through */ + case CODELENS: + while (state.have < state.nlen + state.ndist) { + for (;;) { + here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/ + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + if (here_val < 16) { + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + state.lens[state.have++] = here_val; + } + else { + if (here_val === 16) { + //=== NEEDBITS(here.bits + 2); + n = here_bits + 2; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + if (state.have === 0) { + strm.msg = 'invalid bit length repeat'; + state.mode = BAD; + break; + } + len = state.lens[state.have - 1]; + copy = 3 + (hold & 0x03);//BITS(2); + //--- DROPBITS(2) ---// + hold >>>= 2; + bits -= 2; + //---// + } + else if (here_val === 17) { + //=== NEEDBITS(here.bits + 3); + n = here_bits + 3; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + len = 0; + copy = 3 + (hold & 0x07);//BITS(3); + //--- DROPBITS(3) ---// + hold >>>= 3; + bits -= 3; + //---// + } + else { + //=== NEEDBITS(here.bits + 7); + n = here_bits + 7; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + len = 0; + copy = 11 + (hold & 0x7f);//BITS(7); + //--- DROPBITS(7) ---// + hold >>>= 7; + bits -= 7; + //---// + } + if (state.have + copy > state.nlen + state.ndist) { + strm.msg = 'invalid bit length repeat'; + state.mode = BAD; + break; + } + while (copy--) { + state.lens[state.have++] = len; + } + } + } + + /* handle error breaks in while */ + if (state.mode === BAD) { break; } + + /* check for end-of-block code (better have one) */ + if (state.lens[256] === 0) { + strm.msg = 'invalid code -- missing end-of-block'; + state.mode = BAD; + break; + } + + /* build code tables -- note: do not change the lenbits or distbits + values here (9 and 6) without reading the comments in inftrees.h + concerning the ENOUGH constants, which depend on those values */ + state.lenbits = 9; + + opts = {bits: state.lenbits}; + ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); + // We have separate tables & no pointers. 2 commented lines below not needed. + // state.next_index = opts.table_index; + state.lenbits = opts.bits; + // state.lencode = state.next; + + if (ret) { + strm.msg = 'invalid literal/lengths set'; + state.mode = BAD; + break; + } + + state.distbits = 6; + //state.distcode.copy(state.codes); + // Switch to use dynamic table + state.distcode = state.distdyn; + opts = {bits: state.distbits}; + ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); + // We have separate tables & no pointers. 2 commented lines below not needed. + // state.next_index = opts.table_index; + state.distbits = opts.bits; + // state.distcode = state.next; + + if (ret) { + strm.msg = 'invalid distances set'; + state.mode = BAD; + break; + } + //Tracev((stderr, 'inflate: codes ok\n')); + state.mode = LEN_; + if (flush === Z_TREES) { break inf_leave; } + /* falls through */ + case LEN_: + state.mode = LEN; + /* falls through */ + case LEN: + if (have >= 6 && left >= 258) { + //--- RESTORE() --- + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + //--- + inflate_fast(strm, _out); + //--- LOAD() --- + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + //--- + + if (state.mode === TYPE) { + state.back = -1; + } + break; + } + state.back = 0; + for (;;) { + here = state.lencode[hold & ((1 << state.lenbits) -1)]; /*BITS(state.lenbits)*/ + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if (here_bits <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + if (here_op && (here_op & 0xf0) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (;;) { + here = state.lencode[last_val + + ((hold & ((1 << (last_bits + last_op)) -1))/*BITS(last.bits + last.op)*/ >> last_bits)]; + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((last_bits + here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + //--- DROPBITS(last.bits) ---// + hold >>>= last_bits; + bits -= last_bits; + //---// + state.back += last_bits; + } + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + state.back += here_bits; + state.length = here_val; + if (here_op === 0) { + //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + // "inflate: literal '%c'\n" : + // "inflate: literal 0x%02x\n", here.val)); + state.mode = LIT; + break; + } + if (here_op & 32) { + //Tracevv((stderr, "inflate: end of block\n")); + state.back = -1; + state.mode = TYPE; + break; + } + if (here_op & 64) { + strm.msg = 'invalid literal/length code'; + state.mode = BAD; + break; + } + state.extra = here_op & 15; + state.mode = LENEXT; + /* falls through */ + case LENEXT: + if (state.extra) { + //=== NEEDBITS(state.extra); + n = state.extra; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.length += hold & ((1 << state.extra) -1)/*BITS(state.extra)*/; + //--- DROPBITS(state.extra) ---// + hold >>>= state.extra; + bits -= state.extra; + //---// + state.back += state.extra; + } + //Tracevv((stderr, "inflate: length %u\n", state.length)); + state.was = state.length; + state.mode = DIST; + /* falls through */ + case DIST: + for (;;) { + here = state.distcode[hold & ((1 << state.distbits) -1)];/*BITS(state.distbits)*/ + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + if ((here_op & 0xf0) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (;;) { + here = state.distcode[last_val + + ((hold & ((1 << (last_bits + last_op)) -1))/*BITS(last.bits + last.op)*/ >> last_bits)]; + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((last_bits + here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + //--- DROPBITS(last.bits) ---// + hold >>>= last_bits; + bits -= last_bits; + //---// + state.back += last_bits; + } + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + state.back += here_bits; + if (here_op & 64) { + strm.msg = 'invalid distance code'; + state.mode = BAD; + break; + } + state.offset = here_val; + state.extra = (here_op) & 15; + state.mode = DISTEXT; + /* falls through */ + case DISTEXT: + if (state.extra) { + //=== NEEDBITS(state.extra); + n = state.extra; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.offset += hold & ((1 << state.extra) -1)/*BITS(state.extra)*/; + //--- DROPBITS(state.extra) ---// + hold >>>= state.extra; + bits -= state.extra; + //---// + state.back += state.extra; + } +//#ifdef INFLATE_STRICT + if (state.offset > state.dmax) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD; + break; + } +//#endif + //Tracevv((stderr, "inflate: distance %u\n", state.offset)); + state.mode = MATCH; + /* falls through */ + case MATCH: + if (left === 0) { break inf_leave; } + copy = _out - left; + if (state.offset > copy) { /* copy from window */ + copy = state.offset - copy; + if (copy > state.whave) { + if (state.sane) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD; + break; + } +// (!) This block is disabled in zlib defailts, +// don't enable it for binary compatibility +//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR +// Trace((stderr, "inflate.c too far\n")); +// copy -= state.whave; +// if (copy > state.length) { copy = state.length; } +// if (copy > left) { copy = left; } +// left -= copy; +// state.length -= copy; +// do { +// output[put++] = 0; +// } while (--copy); +// if (state.length === 0) { state.mode = LEN; } +// break; +//#endif + } + if (copy > state.wnext) { + copy -= state.wnext; + from = state.wsize - copy; + } + else { + from = state.wnext - copy; + } + if (copy > state.length) { copy = state.length; } + from_source = state.window; + } + else { /* copy from output */ + from_source = output; + from = put - state.offset; + copy = state.length; + } + if (copy > left) { copy = left; } + left -= copy; + state.length -= copy; + do { + output[put++] = from_source[from++]; + } while (--copy); + if (state.length === 0) { state.mode = LEN; } + break; + case LIT: + if (left === 0) { break inf_leave; } + output[put++] = state.length; + left--; + state.mode = LEN; + break; + case CHECK: + if (state.wrap) { + //=== NEEDBITS(32); + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + // Use '|' insdead of '+' to make sure that result is signed + hold |= input[next++] << bits; + bits += 8; + } + //===// + _out -= left; + strm.total_out += _out; + state.total += _out; + if (_out) { + strm.adler = state.check = + /*UPDATE(state.check, put - _out, _out);*/ + (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out)); + + } + _out = left; + // NB: crc32 stored as signed 32-bit int, ZSWAP32 returns signed too + if ((state.flags ? hold : ZSWAP32(hold)) !== state.check) { + strm.msg = 'incorrect data check'; + state.mode = BAD; + break; + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + //Tracev((stderr, "inflate: check matches trailer\n")); + } + state.mode = LENGTH; + /* falls through */ + case LENGTH: + if (state.wrap && state.flags) { + //=== NEEDBITS(32); + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (hold !== (state.total & 0xffffffff)) { + strm.msg = 'incorrect length check'; + state.mode = BAD; + break; + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + //Tracev((stderr, "inflate: length matches trailer\n")); + } + state.mode = DONE; + /* falls through */ + case DONE: + ret = Z_STREAM_END; + break inf_leave; + case BAD: + ret = Z_DATA_ERROR; + break inf_leave; + case MEM: + return Z_MEM_ERROR; + case SYNC: + /* falls through */ + default: + return Z_STREAM_ERROR; + } + } + + // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave" + + /* + Return from inflate(), updating the total counts and the check value. + If there was no progress during the inflate() call, return a buffer + error. Call updatewindow() to create and/or update the window state. + Note: a memory error from inflate() is non-recoverable. + */ + + //--- RESTORE() --- + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + //--- + + if (state.wsize || (_out !== strm.avail_out && state.mode < BAD && + (state.mode < CHECK || flush !== Z_FINISH))) { + if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { + state.mode = MEM; + return Z_MEM_ERROR; + } + } + _in -= strm.avail_in; + _out -= strm.avail_out; + strm.total_in += _in; + strm.total_out += _out; + state.total += _out; + if (state.wrap && _out) { + strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/ + (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out)); + } + strm.data_type = state.bits + (state.last ? 64 : 0) + + (state.mode === TYPE ? 128 : 0) + + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); + if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) { + ret = Z_BUF_ERROR; + } + return ret; +} + +function inflateEnd(strm) { + + if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) { + return Z_STREAM_ERROR; + } + + var state = strm.state; + if (state.window) { + state.window = null; + } + strm.state = null; + return Z_OK; +} + +function inflateGetHeader(strm, head) { + var state; + + /* check state */ + if (!strm || !strm.state) { return Z_STREAM_ERROR; } + state = strm.state; + if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; } + + /* save header structure */ + state.head = head; + head.done = false; + return Z_OK; +} + + +exports.inflateReset = inflateReset; +exports.inflateReset2 = inflateReset2; +exports.inflateResetKeep = inflateResetKeep; +exports.inflateInit = inflateInit; +exports.inflateInit2 = inflateInit2; +exports.inflate = inflate; +exports.inflateEnd = inflateEnd; +exports.inflateGetHeader = inflateGetHeader; +exports.inflateInfo = 'pako inflate (from Nodeca project)'; + +/* Not implemented +exports.inflateCopy = inflateCopy; +exports.inflateGetDictionary = inflateGetDictionary; +exports.inflateMark = inflateMark; +exports.inflatePrime = inflatePrime; +exports.inflateSetDictionary = inflateSetDictionary; +exports.inflateSync = inflateSync; +exports.inflateSyncPoint = inflateSyncPoint; +exports.inflateUndermine = inflateUndermine; +*/ diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/inftrees.js b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/inftrees.js new file mode 100644 index 0000000..1852df2 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/inftrees.js @@ -0,0 +1,327 @@ +'use strict'; + + +var utils = require('../utils/common'); + +var MAXBITS = 15; +var ENOUGH_LENS = 852; +var ENOUGH_DISTS = 592; +//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); + +var CODES = 0; +var LENS = 1; +var DISTS = 2; + +var lbase = [ /* Length codes 257..285 base */ + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, + 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 +]; + +var lext = [ /* Length codes 257..285 extra */ + 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, + 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78 +]; + +var dbase = [ /* Distance codes 0..29 base */ + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, + 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, + 8193, 12289, 16385, 24577, 0, 0 +]; + +var dext = [ /* Distance codes 0..29 extra */ + 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, + 28, 28, 29, 29, 64, 64 +]; + +module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) +{ + var bits = opts.bits; + //here = opts.here; /* table entry for duplication */ + + var len = 0; /* a code's length in bits */ + var sym = 0; /* index of code symbols */ + var min = 0, max = 0; /* minimum and maximum code lengths */ + var root = 0; /* number of index bits for root table */ + var curr = 0; /* number of index bits for current table */ + var drop = 0; /* code bits to drop for sub-table */ + var left = 0; /* number of prefix codes available */ + var used = 0; /* code entries in table used */ + var huff = 0; /* Huffman code */ + var incr; /* for incrementing code, index */ + var fill; /* index for replicating entries */ + var low; /* low bits for current root entry */ + var mask; /* mask for low root bits */ + var next; /* next available space in table */ + var base = null; /* base value table to use */ + var base_index = 0; +// var shoextra; /* extra bits table to use */ + var end; /* use base and extra for symbol > end */ + var count = new utils.Buf16(MAXBITS+1); //[MAXBITS+1]; /* number of codes of each length */ + var offs = new utils.Buf16(MAXBITS+1); //[MAXBITS+1]; /* offsets in table for each length */ + var extra = null; + var extra_index = 0; + + var here_bits, here_op, here_val; + + /* + Process a set of code lengths to create a canonical Huffman code. The + code lengths are lens[0..codes-1]. Each length corresponds to the + symbols 0..codes-1. The Huffman code is generated by first sorting the + symbols by length from short to long, and retaining the symbol order + for codes with equal lengths. Then the code starts with all zero bits + for the first code of the shortest length, and the codes are integer + increments for the same length, and zeros are appended as the length + increases. For the deflate format, these bits are stored backwards + from their more natural integer increment ordering, and so when the + decoding tables are built in the large loop below, the integer codes + are incremented backwards. + + This routine assumes, but does not check, that all of the entries in + lens[] are in the range 0..MAXBITS. The caller must assure this. + 1..MAXBITS is interpreted as that code length. zero means that that + symbol does not occur in this code. + + The codes are sorted by computing a count of codes for each length, + creating from that a table of starting indices for each length in the + sorted table, and then entering the symbols in order in the sorted + table. The sorted table is work[], with that space being provided by + the caller. + + The length counts are used for other purposes as well, i.e. finding + the minimum and maximum length codes, determining if there are any + codes at all, checking for a valid set of lengths, and looking ahead + at length counts to determine sub-table sizes when building the + decoding tables. + */ + + /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ + for (len = 0; len <= MAXBITS; len++) { + count[len] = 0; + } + for (sym = 0; sym < codes; sym++) { + count[lens[lens_index + sym]]++; + } + + /* bound code lengths, force root to be within code lengths */ + root = bits; + for (max = MAXBITS; max >= 1; max--) { + if (count[max] !== 0) { break; } + } + if (root > max) { + root = max; + } + if (max === 0) { /* no symbols to code at all */ + //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */ + //table.bits[opts.table_index] = 1; //here.bits = (var char)1; + //table.val[opts.table_index++] = 0; //here.val = (var short)0; + table[table_index++] = (1 << 24) | (64 << 16) | 0; + + + //table.op[opts.table_index] = 64; + //table.bits[opts.table_index] = 1; + //table.val[opts.table_index++] = 0; + table[table_index++] = (1 << 24) | (64 << 16) | 0; + + opts.bits = 1; + return 0; /* no symbols, but wait for decoding to report error */ + } + for (min = 1; min < max; min++) { + if (count[min] !== 0) { break; } + } + if (root < min) { + root = min; + } + + /* check for an over-subscribed or incomplete set of lengths */ + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) { + return -1; + } /* over-subscribed */ + } + if (left > 0 && (type === CODES || max !== 1)) { + return -1; /* incomplete set */ + } + + /* generate offsets into symbol table for each length for sorting */ + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) { + offs[len + 1] = offs[len] + count[len]; + } + + /* sort symbols by length, by symbol order within each length */ + for (sym = 0; sym < codes; sym++) { + if (lens[lens_index + sym] !== 0) { + work[offs[lens[lens_index + sym]]++] = sym; + } + } + + /* + Create and fill in decoding tables. In this loop, the table being + filled is at next and has curr index bits. The code being used is huff + with length len. That code is converted to an index by dropping drop + bits off of the bottom. For codes where len is less than drop + curr, + those top drop + curr - len bits are incremented through all values to + fill the table with replicated entries. + + root is the number of index bits for the root table. When len exceeds + root, sub-tables are created pointed to by the root entry with an index + of the low root bits of huff. This is saved in low to check for when a + new sub-table should be started. drop is zero when the root table is + being filled, and drop is root when sub-tables are being filled. + + When a new sub-table is needed, it is necessary to look ahead in the + code lengths to determine what size sub-table is needed. The length + counts are used for this, and so count[] is decremented as codes are + entered in the tables. + + used keeps track of how many table entries have been allocated from the + provided *table space. It is checked for LENS and DIST tables against + the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in + the initial root table size constants. See the comments in inftrees.h + for more information. + + sym increments through all symbols, and the loop terminates when + all codes of length max, i.e. all codes, have been processed. This + routine permits incomplete codes, so another loop after this one fills + in the rest of the decoding tables with invalid code markers. + */ + + /* set up for code type */ + // poor man optimization - use if-else instead of switch, + // to avoid deopts in old v8 + if (type === CODES) { + base = extra = work; /* dummy value--not used */ + end = 19; + + } else if (type === LENS) { + base = lbase; + base_index -= 257; + extra = lext; + extra_index -= 257; + end = 256; + + } else { /* DISTS */ + base = dbase; + extra = dext; + end = -1; + } + + /* initialize opts for loop */ + huff = 0; /* starting code */ + sym = 0; /* starting code symbol */ + len = min; /* starting code length */ + next = table_index; /* current table to fill in */ + curr = root; /* current table index bits */ + drop = 0; /* current bits to drop from code for index */ + low = -1; /* trigger new sub-table when len > root */ + used = 1 << root; /* use root table entries */ + mask = used - 1; /* mask for comparing low */ + + /* check available table space */ + if ((type === LENS && used > ENOUGH_LENS) || + (type === DISTS && used > ENOUGH_DISTS)) { + return 1; + } + + var i=0; + /* process all codes and make table entries */ + for (;;) { + i++; + /* create table entry */ + here_bits = len - drop; + if (work[sym] < end) { + here_op = 0; + here_val = work[sym]; + } + else if (work[sym] > end) { + here_op = extra[extra_index + work[sym]]; + here_val = base[base_index + work[sym]]; + } + else { + here_op = 32 + 64; /* end of block */ + here_val = 0; + } + + /* replicate for those indices with low len bits equal to huff */ + incr = 1 << (len - drop); + fill = 1 << curr; + min = fill; /* save offset to next table */ + do { + fill -= incr; + table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0; + } while (fill !== 0); + + /* backwards increment the len-bit code huff */ + incr = 1 << (len - 1); + while (huff & incr) { + incr >>= 1; + } + if (incr !== 0) { + huff &= incr - 1; + huff += incr; + } else { + huff = 0; + } + + /* go to next symbol, update count, len */ + sym++; + if (--count[len] === 0) { + if (len === max) { break; } + len = lens[lens_index + work[sym]]; + } + + /* create new sub-table if needed */ + if (len > root && (huff & mask) !== low) { + /* if first time, transition to sub-tables */ + if (drop === 0) { + drop = root; + } + + /* increment past last table */ + next += min; /* here min is 1 << curr */ + + /* determine length of next table */ + curr = len - drop; + left = 1 << curr; + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) { break; } + curr++; + left <<= 1; + } + + /* check for enough space */ + used += 1 << curr; + if ((type === LENS && used > ENOUGH_LENS) || + (type === DISTS && used > ENOUGH_DISTS)) { + return 1; + } + + /* point entry in root table to sub-table */ + low = huff & mask; + /*table.op[low] = curr; + table.bits[low] = root; + table.val[low] = next - opts.table_index;*/ + table[low] = (root << 24) | (curr << 16) | (next - table_index) |0; + } + } + + /* fill in remaining table entry if code is incomplete (guaranteed to have + at most one remaining entry, since if the code is incomplete, the + maximum code length that was allowed to get this far is one bit) */ + if (huff !== 0) { + //table.op[next + huff] = 64; /* invalid code marker */ + //table.bits[next + huff] = len - drop; + //table.val[next + huff] = 0; + table[next + huff] = ((len - drop) << 24) | (64 << 16) |0; + } + + /* set return parameters */ + //opts.table_index += used; + opts.bits = root; + return 0; +}; diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/messages.js b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/messages.js new file mode 100644 index 0000000..75bd583 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/messages.js @@ -0,0 +1,13 @@ +'use strict'; + +module.exports = { + '2': 'need dictionary', /* Z_NEED_DICT 2 */ + '1': 'stream end', /* Z_STREAM_END 1 */ + '0': '', /* Z_OK 0 */ + '-1': 'file error', /* Z_ERRNO (-1) */ + '-2': 'stream error', /* Z_STREAM_ERROR (-2) */ + '-3': 'data error', /* Z_DATA_ERROR (-3) */ + '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */ + '-5': 'buffer error', /* Z_BUF_ERROR (-5) */ + '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */ +}; diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/trees.js b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/trees.js new file mode 100644 index 0000000..a2a5f66 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/trees.js @@ -0,0 +1,1199 @@ +'use strict'; + + +var utils = require('../utils/common'); + +/* Public constants ==========================================================*/ +/* ===========================================================================*/ + + +//var Z_FILTERED = 1; +//var Z_HUFFMAN_ONLY = 2; +//var Z_RLE = 3; +var Z_FIXED = 4; +//var Z_DEFAULT_STRATEGY = 0; + +/* Possible values of the data_type field (though see inflate()) */ +var Z_BINARY = 0; +var Z_TEXT = 1; +//var Z_ASCII = 1; // = Z_TEXT +var Z_UNKNOWN = 2; + +/*============================================================================*/ + + +function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } } + +// From zutil.h + +var STORED_BLOCK = 0; +var STATIC_TREES = 1; +var DYN_TREES = 2; +/* The three kinds of block type */ + +var MIN_MATCH = 3; +var MAX_MATCH = 258; +/* The minimum and maximum match lengths */ + +// From deflate.h +/* =========================================================================== + * Internal compression state. + */ + +var LENGTH_CODES = 29; +/* number of length codes, not counting the special END_BLOCK code */ + +var LITERALS = 256; +/* number of literal bytes 0..255 */ + +var L_CODES = LITERALS + 1 + LENGTH_CODES; +/* number of Literal or Length codes, including the END_BLOCK code */ + +var D_CODES = 30; +/* number of distance codes */ + +var BL_CODES = 19; +/* number of codes used to transfer the bit lengths */ + +var HEAP_SIZE = 2*L_CODES + 1; +/* maximum heap size */ + +var MAX_BITS = 15; +/* All codes must not exceed MAX_BITS bits */ + +var Buf_size = 16; +/* size of bit buffer in bi_buf */ + + +/* =========================================================================== + * Constants + */ + +var MAX_BL_BITS = 7; +/* Bit length codes must not exceed MAX_BL_BITS bits */ + +var END_BLOCK = 256; +/* end of block literal code */ + +var REP_3_6 = 16; +/* repeat previous bit length 3-6 times (2 bits of repeat count) */ + +var REPZ_3_10 = 17; +/* repeat a zero length 3-10 times (3 bits of repeat count) */ + +var REPZ_11_138 = 18; +/* repeat a zero length 11-138 times (7 bits of repeat count) */ + +var extra_lbits = /* extra bits for each length code */ + [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]; + +var extra_dbits = /* extra bits for each distance code */ + [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]; + +var extra_blbits = /* extra bits for each bit length code */ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]; + +var bl_order = + [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]; +/* The lengths of the bit length codes are sent in order of decreasing + * probability, to avoid transmitting the lengths for unused bit length codes. + */ + +/* =========================================================================== + * Local data. These are initialized only once. + */ + +// We pre-fill arrays with 0 to avoid uninitialized gaps + +var DIST_CODE_LEN = 512; /* see definition of array dist_code below */ + +// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1 +var static_ltree = new Array((L_CODES+2) * 2); +zero(static_ltree); +/* The static literal tree. Since the bit lengths are imposed, there is no + * need for the L_CODES extra codes used during heap construction. However + * The codes 286 and 287 are needed to build a canonical tree (see _tr_init + * below). + */ + +var static_dtree = new Array(D_CODES * 2); +zero(static_dtree); +/* The static distance tree. (Actually a trivial tree since all codes use + * 5 bits.) + */ + +var _dist_code = new Array(DIST_CODE_LEN); +zero(_dist_code); +/* Distance codes. The first 256 values correspond to the distances + * 3 .. 258, the last 256 values correspond to the top 8 bits of + * the 15 bit distances. + */ + +var _length_code = new Array(MAX_MATCH-MIN_MATCH+1); +zero(_length_code); +/* length code for each normalized match length (0 == MIN_MATCH) */ + +var base_length = new Array(LENGTH_CODES); +zero(base_length); +/* First normalized length for each code (0 = MIN_MATCH) */ + +var base_dist = new Array(D_CODES); +zero(base_dist); +/* First normalized distance for each code (0 = distance of 1) */ + + +var StaticTreeDesc = function (static_tree, extra_bits, extra_base, elems, max_length) { + + this.static_tree = static_tree; /* static tree or NULL */ + this.extra_bits = extra_bits; /* extra bits for each code or NULL */ + this.extra_base = extra_base; /* base index for extra_bits */ + this.elems = elems; /* max number of elements in the tree */ + this.max_length = max_length; /* max bit length for the codes */ + + // show if `static_tree` has data or dummy - needed for monomorphic objects + this.has_stree = static_tree && static_tree.length; +}; + + +var static_l_desc; +var static_d_desc; +var static_bl_desc; + + +var TreeDesc = function(dyn_tree, stat_desc) { + this.dyn_tree = dyn_tree; /* the dynamic tree */ + this.max_code = 0; /* largest code with non zero frequency */ + this.stat_desc = stat_desc; /* the corresponding static tree */ +}; + + + +function d_code(dist) { + return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; +} + + +/* =========================================================================== + * Output a short LSB first on the stream. + * IN assertion: there is enough room in pendingBuf. + */ +function put_short (s, w) { +// put_byte(s, (uch)((w) & 0xff)); +// put_byte(s, (uch)((ush)(w) >> 8)); + s.pending_buf[s.pending++] = (w) & 0xff; + s.pending_buf[s.pending++] = (w >>> 8) & 0xff; +} + + +/* =========================================================================== + * Send a value on a given number of bits. + * IN assertion: length <= 16 and value fits in length bits. + */ +function send_bits(s, value, length) { + if (s.bi_valid > (Buf_size - length)) { + s.bi_buf |= (value << s.bi_valid) & 0xffff; + put_short(s, s.bi_buf); + s.bi_buf = value >> (Buf_size - s.bi_valid); + s.bi_valid += length - Buf_size; + } else { + s.bi_buf |= (value << s.bi_valid) & 0xffff; + s.bi_valid += length; + } +} + + +function send_code(s, c, tree) { + send_bits(s, tree[c*2]/*.Code*/, tree[c*2 + 1]/*.Len*/); +} + + +/* =========================================================================== + * Reverse the first len bits of a code, using straightforward code (a faster + * method would use a table) + * IN assertion: 1 <= len <= 15 + */ +function bi_reverse(code, len) { + var res = 0; + do { + res |= code & 1; + code >>>= 1; + res <<= 1; + } while (--len > 0); + return res >>> 1; +} + + +/* =========================================================================== + * Flush the bit buffer, keeping at most 7 bits in it. + */ +function bi_flush(s) { + if (s.bi_valid === 16) { + put_short(s, s.bi_buf); + s.bi_buf = 0; + s.bi_valid = 0; + + } else if (s.bi_valid >= 8) { + s.pending_buf[s.pending++] = s.bi_buf & 0xff; + s.bi_buf >>= 8; + s.bi_valid -= 8; + } +} + + +/* =========================================================================== + * Compute the optimal bit lengths for a tree and update the total bit length + * for the current block. + * IN assertion: the fields freq and dad are set, heap[heap_max] and + * above are the tree nodes sorted by increasing frequency. + * OUT assertions: the field len is set to the optimal bit length, the + * array bl_count contains the frequencies for each bit length. + * The length opt_len is updated; static_len is also updated if stree is + * not null. + */ +function gen_bitlen(s, desc) +// deflate_state *s; +// tree_desc *desc; /* the tree descriptor */ +{ + var tree = desc.dyn_tree; + var max_code = desc.max_code; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var extra = desc.stat_desc.extra_bits; + var base = desc.stat_desc.extra_base; + var max_length = desc.stat_desc.max_length; + var h; /* heap index */ + var n, m; /* iterate over the tree elements */ + var bits; /* bit length */ + var xbits; /* extra bits */ + var f; /* frequency */ + var overflow = 0; /* number of elements with bit length too large */ + + for (bits = 0; bits <= MAX_BITS; bits++) { + s.bl_count[bits] = 0; + } + + /* In a first pass, compute the optimal bit lengths (which may + * overflow in the case of the bit length tree). + */ + tree[s.heap[s.heap_max]*2 + 1]/*.Len*/ = 0; /* root of the heap */ + + for (h = s.heap_max+1; h < HEAP_SIZE; h++) { + n = s.heap[h]; + bits = tree[tree[n*2 +1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1; + if (bits > max_length) { + bits = max_length; + overflow++; + } + tree[n*2 + 1]/*.Len*/ = bits; + /* We overwrite tree[n].Dad which is no longer needed */ + + if (n > max_code) { continue; } /* not a leaf node */ + + s.bl_count[bits]++; + xbits = 0; + if (n >= base) { + xbits = extra[n-base]; + } + f = tree[n * 2]/*.Freq*/; + s.opt_len += f * (bits + xbits); + if (has_stree) { + s.static_len += f * (stree[n*2 + 1]/*.Len*/ + xbits); + } + } + if (overflow === 0) { return; } + + // Trace((stderr,"\nbit length overflow\n")); + /* This happens for example on obj2 and pic of the Calgary corpus */ + + /* Find the first bit length which could increase: */ + do { + bits = max_length-1; + while (s.bl_count[bits] === 0) { bits--; } + s.bl_count[bits]--; /* move one leaf down the tree */ + s.bl_count[bits+1] += 2; /* move one overflow item as its brother */ + s.bl_count[max_length]--; + /* The brother of the overflow item also moves one step up, + * but this does not affect bl_count[max_length] + */ + overflow -= 2; + } while (overflow > 0); + + /* Now recompute all bit lengths, scanning in increasing frequency. + * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all + * lengths instead of fixing only the wrong ones. This idea is taken + * from 'ar' written by Haruhiko Okumura.) + */ + for (bits = max_length; bits !== 0; bits--) { + n = s.bl_count[bits]; + while (n !== 0) { + m = s.heap[--h]; + if (m > max_code) { continue; } + if (tree[m*2 + 1]/*.Len*/ !== bits) { + // Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); + s.opt_len += (bits - tree[m*2 + 1]/*.Len*/)*tree[m*2]/*.Freq*/; + tree[m*2 + 1]/*.Len*/ = bits; + } + n--; + } + } +} + + +/* =========================================================================== + * Generate the codes for a given tree and bit counts (which need not be + * optimal). + * IN assertion: the array bl_count contains the bit length statistics for + * the given tree and the field len is set for all tree elements. + * OUT assertion: the field code is set for all tree elements of non + * zero code length. + */ +function gen_codes(tree, max_code, bl_count) +// ct_data *tree; /* the tree to decorate */ +// int max_code; /* largest code with non zero frequency */ +// ushf *bl_count; /* number of codes at each bit length */ +{ + var next_code = new Array(MAX_BITS+1); /* next code value for each bit length */ + var code = 0; /* running code value */ + var bits; /* bit index */ + var n; /* code index */ + + /* The distribution counts are first used to generate the code values + * without bit reversal. + */ + for (bits = 1; bits <= MAX_BITS; bits++) { + next_code[bits] = code = (code + bl_count[bits-1]) << 1; + } + /* Check that the bit counts in bl_count are consistent. The last code + * must be all ones. + */ + //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */ + length = 0; + for (code = 0; code < LENGTH_CODES-1; code++) { + base_length[code] = length; + for (n = 0; n < (1< dist code (0..29) */ + dist = 0; + for (code = 0 ; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < (1<>= 7; /* from now on, all distances are divided by 128 */ + for (; code < D_CODES; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) { + _dist_code[256 + dist++] = code; + } + } + //Assert (dist == 256, "tr_static_init: 256+dist != 512"); + + /* Construct the codes of the static literal tree */ + for (bits = 0; bits <= MAX_BITS; bits++) { + bl_count[bits] = 0; + } + + n = 0; + while (n <= 143) { + static_ltree[n*2 + 1]/*.Len*/ = 8; + n++; + bl_count[8]++; + } + while (n <= 255) { + static_ltree[n*2 + 1]/*.Len*/ = 9; + n++; + bl_count[9]++; + } + while (n <= 279) { + static_ltree[n*2 + 1]/*.Len*/ = 7; + n++; + bl_count[7]++; + } + while (n <= 287) { + static_ltree[n*2 + 1]/*.Len*/ = 8; + n++; + bl_count[8]++; + } + /* Codes 286 and 287 do not exist, but we must include them in the + * tree construction to get a canonical Huffman tree (longest code + * all ones) + */ + gen_codes(static_ltree, L_CODES+1, bl_count); + + /* The static distance tree is trivial: */ + for (n = 0; n < D_CODES; n++) { + static_dtree[n*2 + 1]/*.Len*/ = 5; + static_dtree[n*2]/*.Code*/ = bi_reverse(n, 5); + } + + // Now data ready and we can init static trees + static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS); + static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS); + static_bl_desc =new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); + + //static_init_done = true; +} + + +/* =========================================================================== + * Initialize a new block. + */ +function init_block(s) { + var n; /* iterates over tree elements */ + + /* Initialize the trees. */ + for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n*2]/*.Freq*/ = 0; } + for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n*2]/*.Freq*/ = 0; } + for (n = 0; n < BL_CODES; n++) { s.bl_tree[n*2]/*.Freq*/ = 0; } + + s.dyn_ltree[END_BLOCK*2]/*.Freq*/ = 1; + s.opt_len = s.static_len = 0; + s.last_lit = s.matches = 0; +} + + +/* =========================================================================== + * Flush the bit buffer and align the output on a byte boundary + */ +function bi_windup(s) +{ + if (s.bi_valid > 8) { + put_short(s, s.bi_buf); + } else if (s.bi_valid > 0) { + //put_byte(s, (Byte)s->bi_buf); + s.pending_buf[s.pending++] = s.bi_buf; + } + s.bi_buf = 0; + s.bi_valid = 0; +} + +/* =========================================================================== + * Copy a stored block, storing first the length and its + * one's complement if requested. + */ +function copy_block(s, buf, len, header) +//DeflateState *s; +//charf *buf; /* the input data */ +//unsigned len; /* its length */ +//int header; /* true if block header must be written */ +{ + bi_windup(s); /* align on byte boundary */ + + if (header) { + put_short(s, len); + put_short(s, ~len); + } +// while (len--) { +// put_byte(s, *buf++); +// } + utils.arraySet(s.pending_buf, s.window, buf, len, s.pending); + s.pending += len; +} + +/* =========================================================================== + * Compares to subtrees, using the tree depth as tie breaker when + * the subtrees have equal frequency. This minimizes the worst case length. + */ +function smaller(tree, n, m, depth) { + var _n2 = n*2; + var _m2 = m*2; + return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ || + (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m])); +} + +/* =========================================================================== + * Restore the heap property by moving down the tree starting at node k, + * exchanging a node with the smallest of its two sons if necessary, stopping + * when the heap property is re-established (each father smaller than its + * two sons). + */ +function pqdownheap(s, tree, k) +// deflate_state *s; +// ct_data *tree; /* the tree to restore */ +// int k; /* node to move down */ +{ + var v = s.heap[k]; + var j = k << 1; /* left son of k */ + while (j <= s.heap_len) { + /* Set j to the smallest of the two sons: */ + if (j < s.heap_len && + smaller(tree, s.heap[j+1], s.heap[j], s.depth)) { + j++; + } + /* Exit if v is smaller than both sons */ + if (smaller(tree, v, s.heap[j], s.depth)) { break; } + + /* Exchange v with the smallest son */ + s.heap[k] = s.heap[j]; + k = j; + + /* And continue down the tree, setting j to the left son of k */ + j <<= 1; + } + s.heap[k] = v; +} + + +// inlined manually +// var SMALLEST = 1; + +/* =========================================================================== + * Send the block data compressed using the given Huffman trees + */ +function compress_block(s, ltree, dtree) +// deflate_state *s; +// const ct_data *ltree; /* literal tree */ +// const ct_data *dtree; /* distance tree */ +{ + var dist; /* distance of matched string */ + var lc; /* match length or unmatched char (if dist == 0) */ + var lx = 0; /* running index in l_buf */ + var code; /* the code to send */ + var extra; /* number of extra bits to send */ + + if (s.last_lit !== 0) { + do { + dist = (s.pending_buf[s.d_buf + lx*2] << 8) | (s.pending_buf[s.d_buf + lx*2 + 1]); + lc = s.pending_buf[s.l_buf + lx]; + lx++; + + if (dist === 0) { + send_code(s, lc, ltree); /* send a literal byte */ + //Tracecv(isgraph(lc), (stderr," '%c' ", lc)); + } else { + /* Here, lc is the match length - MIN_MATCH */ + code = _length_code[lc]; + send_code(s, code+LITERALS+1, ltree); /* send the length code */ + extra = extra_lbits[code]; + if (extra !== 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); /* send the extra length bits */ + } + dist--; /* dist is now the match distance - 1 */ + code = d_code(dist); + //Assert (code < D_CODES, "bad d_code"); + + send_code(s, code, dtree); /* send the distance code */ + extra = extra_dbits[code]; + if (extra !== 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); /* send the extra distance bits */ + } + } /* literal or match pair ? */ + + /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ + //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx, + // "pendingBuf overflow"); + + } while (lx < s.last_lit); + } + + send_code(s, END_BLOCK, ltree); +} + + +/* =========================================================================== + * Construct one Huffman tree and assigns the code bit strings and lengths. + * Update the total bit length for the current block. + * IN assertion: the field freq is set for all tree elements. + * OUT assertions: the fields len and code are set to the optimal bit length + * and corresponding code. The length opt_len is updated; static_len is + * also updated if stree is not null. The field max_code is set. + */ +function build_tree(s, desc) +// deflate_state *s; +// tree_desc *desc; /* the tree descriptor */ +{ + var tree = desc.dyn_tree; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var elems = desc.stat_desc.elems; + var n, m; /* iterate over heap elements */ + var max_code = -1; /* largest code with non zero frequency */ + var node; /* new node being created */ + + /* Construct the initial heap, with least frequent element in + * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1]. + * heap[0] is not used. + */ + s.heap_len = 0; + s.heap_max = HEAP_SIZE; + + for (n = 0; n < elems; n++) { + if (tree[n * 2]/*.Freq*/ !== 0) { + s.heap[++s.heap_len] = max_code = n; + s.depth[n] = 0; + + } else { + tree[n*2 + 1]/*.Len*/ = 0; + } + } + + /* The pkzip format requires that at least one distance code exists, + * and that at least one bit should be sent even if there is only one + * possible code. So to avoid special checks later on we force at least + * two codes of non zero frequency. + */ + while (s.heap_len < 2) { + node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0); + tree[node * 2]/*.Freq*/ = 1; + s.depth[node] = 0; + s.opt_len--; + + if (has_stree) { + s.static_len -= stree[node*2 + 1]/*.Len*/; + } + /* node is 0 or 1 so it does not have extra bits */ + } + desc.max_code = max_code; + + /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree, + * establish sub-heaps of increasing lengths: + */ + for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); } + + /* Construct the Huffman tree by repeatedly combining the least two + * frequent nodes. + */ + node = elems; /* next internal node of the tree */ + do { + //pqremove(s, tree, n); /* n = node of least frequency */ + /*** pqremove ***/ + n = s.heap[1/*SMALLEST*/]; + s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--]; + pqdownheap(s, tree, 1/*SMALLEST*/); + /***/ + + m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */ + + s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */ + s.heap[--s.heap_max] = m; + + /* Create a new node father of n and m */ + tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/; + s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; + tree[n*2 + 1]/*.Dad*/ = tree[m*2 + 1]/*.Dad*/ = node; + + /* and insert the new node in the heap */ + s.heap[1/*SMALLEST*/] = node++; + pqdownheap(s, tree, 1/*SMALLEST*/); + + } while (s.heap_len >= 2); + + s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/]; + + /* At this point, the fields freq and dad are set. We can now + * generate the bit lengths. + */ + gen_bitlen(s, desc); + + /* The field len is now set, we can generate the bit codes */ + gen_codes(tree, max_code, s.bl_count); +} + + +/* =========================================================================== + * Scan a literal or distance tree to determine the frequencies of the codes + * in the bit length tree. + */ +function scan_tree(s, tree, max_code) +// deflate_state *s; +// ct_data *tree; /* the tree to be scanned */ +// int max_code; /* and its largest code of non zero frequency */ +{ + var n; /* iterates over all tree elements */ + var prevlen = -1; /* last emitted length */ + var curlen; /* length of current code */ + + var nextlen = tree[0*2 + 1]/*.Len*/; /* length of next code */ + + var count = 0; /* repeat count of the current code */ + var max_count = 7; /* max repeat count */ + var min_count = 4; /* min repeat count */ + + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + tree[(max_code+1)*2 + 1]/*.Len*/ = 0xffff; /* guard */ + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n+1)*2 + 1]/*.Len*/; + + if (++count < max_count && curlen === nextlen) { + continue; + + } else if (count < min_count) { + s.bl_tree[curlen * 2]/*.Freq*/ += count; + + } else if (curlen !== 0) { + + if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; } + s.bl_tree[REP_3_6*2]/*.Freq*/++; + + } else if (count <= 10) { + s.bl_tree[REPZ_3_10*2]/*.Freq*/++; + + } else { + s.bl_tree[REPZ_11_138*2]/*.Freq*/++; + } + + count = 0; + prevlen = curlen; + + if (nextlen === 0) { + max_count = 138; + min_count = 3; + + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + + } else { + max_count = 7; + min_count = 4; + } + } +} + + +/* =========================================================================== + * Send a literal or distance tree in compressed form, using the codes in + * bl_tree. + */ +function send_tree(s, tree, max_code) +// deflate_state *s; +// ct_data *tree; /* the tree to be scanned */ +// int max_code; /* and its largest code of non zero frequency */ +{ + var n; /* iterates over all tree elements */ + var prevlen = -1; /* last emitted length */ + var curlen; /* length of current code */ + + var nextlen = tree[0*2 + 1]/*.Len*/; /* length of next code */ + + var count = 0; /* repeat count of the current code */ + var max_count = 7; /* max repeat count */ + var min_count = 4; /* min repeat count */ + + /* tree[max_code+1].Len = -1; */ /* guard already set */ + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n+1)*2 + 1]/*.Len*/; + + if (++count < max_count && curlen === nextlen) { + continue; + + } else if (count < min_count) { + do { send_code(s, curlen, s.bl_tree); } while (--count !== 0); + + } else if (curlen !== 0) { + if (curlen !== prevlen) { + send_code(s, curlen, s.bl_tree); + count--; + } + //Assert(count >= 3 && count <= 6, " 3_6?"); + send_code(s, REP_3_6, s.bl_tree); + send_bits(s, count-3, 2); + + } else if (count <= 10) { + send_code(s, REPZ_3_10, s.bl_tree); + send_bits(s, count-3, 3); + + } else { + send_code(s, REPZ_11_138, s.bl_tree); + send_bits(s, count-11, 7); + } + + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + + } else { + max_count = 7; + min_count = 4; + } + } +} + + +/* =========================================================================== + * Construct the Huffman tree for the bit lengths and return the index in + * bl_order of the last bit length code to send. + */ +function build_bl_tree(s) { + var max_blindex; /* index of last bit length code of non zero freq */ + + /* Determine the bit length frequencies for literal and distance trees */ + scan_tree(s, s.dyn_ltree, s.l_desc.max_code); + scan_tree(s, s.dyn_dtree, s.d_desc.max_code); + + /* Build the bit length tree: */ + build_tree(s, s.bl_desc); + /* opt_len now includes the length of the tree representations, except + * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. + */ + + /* Determine the number of bit length codes to send. The pkzip format + * requires that at least 4 bit length codes be sent. (appnote.txt says + * 3 but the actual value used is 4.) + */ + for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) { + if (s.bl_tree[bl_order[max_blindex]*2 + 1]/*.Len*/ !== 0) { + break; + } + } + /* Update opt_len to include the bit length tree and counts */ + s.opt_len += 3*(max_blindex+1) + 5+5+4; + //Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", + // s->opt_len, s->static_len)); + + return max_blindex; +} + + +/* =========================================================================== + * Send the header for a block using dynamic Huffman trees: the counts, the + * lengths of the bit length codes, the literal tree and the distance tree. + * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. + */ +function send_all_trees(s, lcodes, dcodes, blcodes) +// deflate_state *s; +// int lcodes, dcodes, blcodes; /* number of codes for each tree */ +{ + var rank; /* index in bl_order */ + + //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); + //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, + // "too many codes"); + //Tracev((stderr, "\nbl counts: ")); + send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */ + send_bits(s, dcodes-1, 5); + send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */ + for (rank = 0; rank < blcodes; rank++) { + //Tracev((stderr, "\nbl code %2d ", bl_order[rank])); + send_bits(s, s.bl_tree[bl_order[rank]*2 + 1]/*.Len*/, 3); + } + //Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); + + send_tree(s, s.dyn_ltree, lcodes-1); /* literal tree */ + //Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); + + send_tree(s, s.dyn_dtree, dcodes-1); /* distance tree */ + //Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); +} + + +/* =========================================================================== + * Check if the data type is TEXT or BINARY, using the following algorithm: + * - TEXT if the two conditions below are satisfied: + * a) There are no non-portable control characters belonging to the + * "black list" (0..6, 14..25, 28..31). + * b) There is at least one printable character belonging to the + * "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). + * - BINARY otherwise. + * - The following partially-portable control characters form a + * "gray list" that is ignored in this detection algorithm: + * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}). + * IN assertion: the fields Freq of dyn_ltree are set. + */ +function detect_data_type(s) { + /* black_mask is the bit mask of black-listed bytes + * set bits 0..6, 14..25, and 28..31 + * 0xf3ffc07f = binary 11110011111111111100000001111111 + */ + var black_mask = 0xf3ffc07f; + var n; + + /* Check for non-textual ("black-listed") bytes. */ + for (n = 0; n <= 31; n++, black_mask >>>= 1) { + if ((black_mask & 1) && (s.dyn_ltree[n*2]/*.Freq*/ !== 0)) { + return Z_BINARY; + } + } + + /* Check for textual ("white-listed") bytes. */ + if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 || + s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) { + return Z_TEXT; + } + for (n = 32; n < LITERALS; n++) { + if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) { + return Z_TEXT; + } + } + + /* There are no "black-listed" or "white-listed" bytes: + * this stream either is empty or has tolerated ("gray-listed") bytes only. + */ + return Z_BINARY; +} + + +var static_init_done = false; + +/* =========================================================================== + * Initialize the tree data structures for a new zlib stream. + */ +function _tr_init(s) +{ + + if (!static_init_done) { + tr_static_init(); + static_init_done = true; + } + + s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); + s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); + s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); + + s.bi_buf = 0; + s.bi_valid = 0; + + /* Initialize the first block of the first file: */ + init_block(s); +} + + +/* =========================================================================== + * Send a stored block + */ +function _tr_stored_block(s, buf, stored_len, last) +//DeflateState *s; +//charf *buf; /* input block */ +//ulg stored_len; /* length of input block */ +//int last; /* one if this is the last block for a file */ +{ + send_bits(s, (STORED_BLOCK<<1)+(last ? 1 : 0), 3); /* send block type */ + copy_block(s, buf, stored_len, true); /* with header */ +} + + +/* =========================================================================== + * Send one empty static block to give enough lookahead for inflate. + * This takes 10 bits, of which 7 may remain in the bit buffer. + */ +function _tr_align(s) { + send_bits(s, STATIC_TREES<<1, 3); + send_code(s, END_BLOCK, static_ltree); + bi_flush(s); +} + + +/* =========================================================================== + * Determine the best encoding for the current block: dynamic trees, static + * trees or store, and output the encoded block to the zip file. + */ +function _tr_flush_block(s, buf, stored_len, last) +//DeflateState *s; +//charf *buf; /* input block, or NULL if too old */ +//ulg stored_len; /* length of input block */ +//int last; /* one if this is the last block for a file */ +{ + var opt_lenb, static_lenb; /* opt_len and static_len in bytes */ + var max_blindex = 0; /* index of last bit length code of non zero freq */ + + /* Build the Huffman trees unless a stored block is forced */ + if (s.level > 0) { + + /* Check if the file is binary or text */ + if (s.strm.data_type === Z_UNKNOWN) { + s.strm.data_type = detect_data_type(s); + } + + /* Construct the literal and distance trees */ + build_tree(s, s.l_desc); + // Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, + // s->static_len)); + + build_tree(s, s.d_desc); + // Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, + // s->static_len)); + /* At this point, opt_len and static_len are the total bit lengths of + * the compressed block data, excluding the tree representations. + */ + + /* Build the bit length tree for the above two trees, and get the index + * in bl_order of the last bit length code to send. + */ + max_blindex = build_bl_tree(s); + + /* Determine the best encoding. Compute the block lengths in bytes. */ + opt_lenb = (s.opt_len+3+7) >>> 3; + static_lenb = (s.static_len+3+7) >>> 3; + + // Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", + // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, + // s->last_lit)); + + if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; } + + } else { + // Assert(buf != (char*)0, "lost buf"); + opt_lenb = static_lenb = stored_len + 5; /* force a stored block */ + } + + if ((stored_len+4 <= opt_lenb) && (buf !== -1)) { + /* 4: two words for the lengths */ + + /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. + * Otherwise we can't have processed more than WSIZE input bytes since + * the last block flush, because compression would have been + * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to + * transform a block into a stored block. + */ + _tr_stored_block(s, buf, stored_len, last); + + } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) { + + send_bits(s, (STATIC_TREES<<1) + (last ? 1 : 0), 3); + compress_block(s, static_ltree, static_dtree); + + } else { + send_bits(s, (DYN_TREES<<1) + (last ? 1 : 0), 3); + send_all_trees(s, s.l_desc.max_code+1, s.d_desc.max_code+1, max_blindex+1); + compress_block(s, s.dyn_ltree, s.dyn_dtree); + } + // Assert (s->compressed_len == s->bits_sent, "bad compressed size"); + /* The above check is made mod 2^32, for files larger than 512 MB + * and uLong implemented on 32 bits. + */ + init_block(s); + + if (last) { + bi_windup(s); + } + // Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, + // s->compressed_len-7*last)); +} + +/* =========================================================================== + * Save the match info and tally the frequency counts. Return true if + * the current block must be flushed. + */ +function _tr_tally(s, dist, lc) +// deflate_state *s; +// unsigned dist; /* distance of matched string */ +// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ +{ + //var out_length, in_length, dcode; + + s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff; + s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff; + + s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff; + s.last_lit++; + + if (dist === 0) { + /* lc is the unmatched char */ + s.dyn_ltree[lc*2]/*.Freq*/++; + } else { + s.matches++; + /* Here, lc is the match length - MIN_MATCH */ + dist--; /* dist = match distance - 1 */ + //Assert((ush)dist < (ush)MAX_DIST(s) && + // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && + // (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); + + s.dyn_ltree[(_length_code[lc]+LITERALS+1) * 2]/*.Freq*/++; + s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++; + } + +// (!) This block is disabled in zlib defailts, +// don't enable it for binary compatibility + +//#ifdef TRUNCATE_BLOCK +// /* Try to guess if it is profitable to stop the current block here */ +// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) { +// /* Compute an upper bound for the compressed length */ +// out_length = s.last_lit*8; +// in_length = s.strstart - s.block_start; +// +// for (dcode = 0; dcode < D_CODES; dcode++) { +// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]); +// } +// out_length >>>= 3; +// //Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", +// // s->last_lit, in_length, out_length, +// // 100L - out_length*100L/in_length)); +// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) { +// return true; +// } +// } +//#endif + + return (s.last_lit === s.lit_bufsize-1); + /* We avoid equality with lit_bufsize because of wraparound at 64K + * on 16 bit machines and because stored blocks are restricted to + * 64K-1 bytes. + */ +} + +exports._tr_init = _tr_init; +exports._tr_stored_block = _tr_stored_block; +exports._tr_flush_block = _tr_flush_block; +exports._tr_tally = _tr_tally; +exports._tr_align = _tr_align; diff --git a/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/zstream.js b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/zstream.js new file mode 100644 index 0000000..2d93a39 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/lib/zlib/zstream.js @@ -0,0 +1,29 @@ +'use strict'; + + +function ZStream() { + /* next input byte */ + this.input = null; // JS specific, because we have no pointers + this.next_in = 0; + /* number of bytes available at input */ + this.avail_in = 0; + /* total number of input bytes read so far */ + this.total_in = 0; + /* next output byte should be put there */ + this.output = null; // JS specific, because we have no pointers + this.next_out = 0; + /* remaining free space at output */ + this.avail_out = 0; + /* total number of bytes output so far */ + this.total_out = 0; + /* last error message, NULL if no error */ + this.msg = ''/*Z_NULL*/; + /* not visible by applications */ + this.state = null; + /* best guess about the data type: binary or text */ + this.data_type = 2/*Z_UNKNOWN*/; + /* adler32 value of the uncompressed data */ + this.adler = 0; +} + +module.exports = ZStream; diff --git a/packages/NoGit.0.1.0/node_modules/pako/package.json b/packages/NoGit.0.1.0/node_modules/pako/package.json new file mode 100644 index 0000000..3f610d2 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/pako/package.json @@ -0,0 +1,100 @@ +{ + "_args": [ + [ + "pako@^0.2.5", + "C:\\temp\\forpg\\node_modules\\js-git" + ] + ], + "_from": "pako@>=0.2.5 <0.3.0", + "_id": "pako@0.2.8", + "_inCache": true, + "_location": "/pako", + "_nodeVersion": "0.12.4", + "_npmUser": { + "email": "vitaly@rcdesign.ru", + "name": "vitaly" + }, + "_npmVersion": "2.10.1", + "_phantomChildren": {}, + "_requested": { + "name": "pako", + "raw": "pako@^0.2.5", + "rawSpec": "^0.2.5", + "scope": null, + "spec": ">=0.2.5 <0.3.0", + "type": "range" + }, + "_requiredBy": [ + "/js-git" + ], + "_resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz", + "_shasum": "15ad772915362913f20de4a8a164b4aacc6165d6", + "_shrinkwrap": null, + "_spec": "pako@^0.2.5", + "_where": "C:\\temp\\forpg\\node_modules\\js-git", + "bugs": { + "url": "https://github.com/nodeca/pako/issues" + }, + "contributors": [ + { + "name": "Andrei Tuputcyn", + "url": "https://github.com/andr83" + }, + { + "name": "Vitaly Puzrin", + "url": "https://github.com/puzrin" + } + ], + "dependencies": {}, + "description": "zlib port to javascript - fast, modularized, with browser support", + "devDependencies": { + "ansi": "*", + "async": "*", + "benchmark": "*", + "browserify": "*", + "eslint": "0.17.1", + "eslint-plugin-nodeca": "~1.0.3", + "grunt": "~0.4.4", + "grunt-cli": "~0.1.13", + "grunt-contrib-connect": "~0.9.0", + "grunt-saucelabs": "~8.6.0", + "istanbul": "*", + "lodash": "*", + "mocha": "1.21.5", + "ndoc": "*", + "uglify-js": "*" + }, + "directories": {}, + "dist": { + "shasum": "15ad772915362913f20de4a8a164b4aacc6165d6", + "tarball": "http://registry.npmjs.org/pako/-/pako-0.2.8.tgz" + }, + "gitHead": "08c5cfb4fe2f744bedbd249be908bba0d8fc0946", + "homepage": "https://github.com/nodeca/pako", + "installable": true, + "keywords": [ + "deflate", + "gzip", + "inflate", + "zlib" + ], + "license": { + "type": "MIT", + "url": "https://github.com/nodeca/pako/blob/master/LICENSE" + }, + "main": "./index.js", + "maintainers": [ + { + "name": "vitaly", + "email": "vitaly@rcdesign.ru" + } + ], + "name": "pako", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/nodeca/pako.git" + }, + "scripts": {}, + "version": "0.2.8" +} diff --git a/packages/NoGit.0.1.0/node_modules/path-is-absolute/index.js b/packages/NoGit.0.1.0/node_modules/path-is-absolute/index.js new file mode 100644 index 0000000..19f103f --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/path-is-absolute/index.js @@ -0,0 +1,20 @@ +'use strict'; + +function posix(path) { + return path.charAt(0) === '/'; +}; + +function win32(path) { + // https://github.com/joyent/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 + var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; + var result = splitDeviceRe.exec(path); + var device = result[1] || ''; + var isUnc = !!device && device.charAt(1) !== ':'; + + // UNC paths are always absolute + return !!result[2] || isUnc; +}; + +module.exports = process.platform === 'win32' ? win32 : posix; +module.exports.posix = posix; +module.exports.win32 = win32; diff --git a/packages/NoGit.0.1.0/node_modules/path-is-absolute/license b/packages/NoGit.0.1.0/node_modules/path-is-absolute/license new file mode 100644 index 0000000..654d0bf --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/path-is-absolute/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.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. diff --git a/packages/NoGit.0.1.0/node_modules/path-is-absolute/package.json b/packages/NoGit.0.1.0/node_modules/path-is-absolute/package.json new file mode 100644 index 0000000..077e420 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/path-is-absolute/package.json @@ -0,0 +1,97 @@ +{ + "_args": [ + [ + "path-is-absolute@^1.0.0", + "C:\\temp\\forpg\\node_modules\\globby\\node_modules\\glob" + ] + ], + "_from": "path-is-absolute@>=1.0.0 <2.0.0", + "_id": "path-is-absolute@1.0.0", + "_inCache": true, + "_location": "/path-is-absolute", + "_nodeVersion": "0.12.0", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" + }, + "_npmVersion": "2.5.1", + "_phantomChildren": {}, + "_requested": { + "name": "path-is-absolute", + "raw": "path-is-absolute@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/globby/glob", + "/rimraf/glob" + ], + "_resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz", + "_shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912", + "_shrinkwrap": null, + "_spec": "path-is-absolute@^1.0.0", + "_where": "C:\\temp\\forpg\\node_modules\\globby\\node_modules\\glob", + "author": { + "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/path-is-absolute/issues" + }, + "dependencies": {}, + "description": "Node.js 0.12 path.isAbsolute() ponyfill", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912", + "tarball": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "gitHead": "7a76a0c9f2263192beedbe0a820e4d0baee5b7a1", + "homepage": "https://github.com/sindresorhus/path-is-absolute", + "installable": true, + "keywords": [ + "absolute", + "built-in", + "check", + "core", + "detect", + "dir", + "file", + "is", + "is-absolute", + "isabsolute", + "path", + "paths", + "polyfill", + "ponyfill", + "shim", + "util", + "utils" + ], + "license": "MIT", + "maintainers": [ + { + "name": "sindresorhus", + "email": "sindresorhus@gmail.com" + } + ], + "name": "path-is-absolute", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/path-is-absolute" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.0" +} diff --git a/packages/NoGit.0.1.0/node_modules/path-is-absolute/readme.md b/packages/NoGit.0.1.0/node_modules/path-is-absolute/readme.md new file mode 100644 index 0000000..cdf94f4 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/path-is-absolute/readme.md @@ -0,0 +1,51 @@ +# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute) + +> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) ponyfill + +> Ponyfill: A polyfill that doesn't overwrite the native method + + +## Install + +``` +$ npm install --save path-is-absolute +``` + + +## Usage + +```js +var pathIsAbsolute = require('path-is-absolute'); + +// Linux +pathIsAbsolute('/home/foo'); +//=> true + +// Windows +pathIsAbsolute('C:/Users/'); +//=> true + +// Any OS +pathIsAbsolute.posix('/home/foo'); +//=> true +``` + + +## API + +See the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path). + +### pathIsAbsolute(path) + +### pathIsAbsolute.posix(path) + +The Posix specific version. + +### pathIsAbsolute.win32(path) + +The Windows specific version. + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/packages/NoGit.0.1.0/node_modules/path-is-inside/LICENSE.txt b/packages/NoGit.0.1.0/node_modules/path-is-inside/LICENSE.txt new file mode 100644 index 0000000..ae20051 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/path-is-inside/LICENSE.txt @@ -0,0 +1,19 @@ +Copyright © 2013–2014 Domenic Denicola + +This work is free. You can redistribute it and/or modify it under the +terms of the Do What The Fuck You Want To Public License, Version 2, +as published by Sam Hocevar. See below for more details. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/packages/NoGit.0.1.0/node_modules/path-is-inside/README.md b/packages/NoGit.0.1.0/node_modules/path-is-inside/README.md new file mode 100644 index 0000000..d42e6aa --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/path-is-inside/README.md @@ -0,0 +1,35 @@ +# Is This Path Inside This Other Path? + +It turns out this question isn't trivial to answer using Node's built-in path APIs. A naive `indexOf`-based solution will fail sometimes on Windows, which is case-insensitive (see e.g. [isaacs/npm#4214][]). You might then think to be clever with `path.resolve`, but you have to be careful to account for situations whether the paths have different drive letters, or else you'll cause bugs like [isaacs/npm#4313][]. And let's not even get started on trailing slashes. + +The **path-is-inside** package will give you a robust, cross-platform way of detecting whether a given path is inside another path. + +## Usage + +Pretty simple. First the path being tested; then the potential parent. Like so: + +```js +var pathIsInside = require("path-is-inside"); + +pathIsInside("/x/y/z", "/x/y") // true +pathIsInside("/x/y", "/x/y/z") // false +``` + +## OS-Specific Behavior + +Like Node's built-in path module, path-is-inside treats all file paths on Windows as case-insensitive, whereas it treats all file paths on *-nix operating systems as case-sensitive. Keep this in mind especially when working on a Mac, where, despite Node's defaults, the OS usually treats paths case-insensitively. + +In practice, this means: + +```js +// On Windows + +pathIsInside("C:\\X\\Y\\Z", "C:\\x\\y") // true + +// On *-nix, including Mac OS X + +pathIsInside("/X/Y/Z", "/x/y") // false +``` + +[isaacs/npm#4214]: https://github.com/isaacs/npm/pull/4214 +[isaacs/npm#4313]: https://github.com/isaacs/npm/issues/4313 diff --git a/packages/NoGit.0.1.0/node_modules/path-is-inside/lib/path-is-inside.js b/packages/NoGit.0.1.0/node_modules/path-is-inside/lib/path-is-inside.js new file mode 100644 index 0000000..596dfd3 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/path-is-inside/lib/path-is-inside.js @@ -0,0 +1,28 @@ +"use strict"; + +var path = require("path"); + +module.exports = function (thePath, potentialParent) { + // For inside-directory checking, we want to allow trailing slashes, so normalize. + thePath = stripTrailingSep(thePath); + potentialParent = stripTrailingSep(potentialParent); + + // Node treats only Windows as case-insensitive in its path module; we follow those conventions. + if (process.platform === "win32") { + thePath = thePath.toLowerCase(); + potentialParent = potentialParent.toLowerCase(); + } + + return thePath.lastIndexOf(potentialParent, 0) === 0 && + ( + thePath[potentialParent.length] === path.sep || + thePath[potentialParent.length] === undefined + ); +}; + +function stripTrailingSep(thePath) { + if (thePath[thePath.length - 1] === path.sep) { + return thePath.slice(0, -1); + } + return thePath; +} diff --git a/packages/NoGit.0.1.0/node_modules/path-is-inside/package.json b/packages/NoGit.0.1.0/node_modules/path-is-inside/package.json new file mode 100644 index 0000000..674617e --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/path-is-inside/package.json @@ -0,0 +1,81 @@ +{ + "_args": [ + [ + "path-is-inside@^1.0.1", + "C:\\temp\\forpg\\node_modules\\is-path-inside" + ] + ], + "_from": "path-is-inside@>=1.0.1 <2.0.0", + "_id": "path-is-inside@1.0.1", + "_inCache": true, + "_location": "/path-is-inside", + "_npmUser": { + "email": "domenic@domenicdenicola.com", + "name": "domenic" + }, + "_npmVersion": "1.3.25", + "_phantomChildren": {}, + "_requested": { + "name": "path-is-inside", + "raw": "path-is-inside@^1.0.1", + "rawSpec": "^1.0.1", + "scope": null, + "spec": ">=1.0.1 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/is-path-inside" + ], + "_resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz", + "_shasum": "98d8f1d030bf04bd7aeee4a1ba5485d40318fd89", + "_shrinkwrap": null, + "_spec": "path-is-inside@^1.0.1", + "_where": "C:\\temp\\forpg\\node_modules\\is-path-inside", + "author": { + "email": "domenic@domenicdenicola.com", + "name": "Domenic Denicola", + "url": "http://domenic.me" + }, + "bugs": { + "url": "http://github.com/domenic/path-is-inside/issues" + }, + "dependencies": {}, + "description": "Tests whether one path is inside another path", + "devDependencies": { + "jshint": "~2.3.0", + "mocha": "~1.15.1" + }, + "directories": {}, + "dist": { + "shasum": "98d8f1d030bf04bd7aeee4a1ba5485d40318fd89", + "tarball": "http://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz" + }, + "homepage": "https://github.com/domenic/path-is-inside", + "installable": true, + "keywords": [ + "directory", + "folder", + "inside", + "path", + "relative" + ], + "license": "WTFPL", + "main": "lib/path-is-inside.js", + "maintainers": [ + { + "name": "domenic", + "email": "domenic@domenicdenicola.com" + } + ], + "name": "path-is-inside", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/domenic/path-is-inside.git" + }, + "scripts": { + "lint": "jshint lib", + "test": "mocha" + }, + "version": "1.0.1" +} diff --git a/packages/NoGit.0.1.0/node_modules/readable-stream/.npmignore b/packages/NoGit.0.1.0/node_modules/readable-stream/.npmignore new file mode 100644 index 0000000..38344f8 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/.npmignore @@ -0,0 +1,5 @@ +build/ +test/ +examples/ +fs.js +zlib.js \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/readable-stream/LICENSE b/packages/NoGit.0.1.0/node_modules/readable-stream/LICENSE new file mode 100644 index 0000000..e3d4e69 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/LICENSE @@ -0,0 +1,18 @@ +Copyright Joyent, Inc. and other Node 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/NoGit.0.1.0/node_modules/readable-stream/README.md b/packages/NoGit.0.1.0/node_modules/readable-stream/README.md new file mode 100644 index 0000000..3fb3e80 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/README.md @@ -0,0 +1,15 @@ +# readable-stream + +***Node-core streams for userland*** + +[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/) +[![NPM](https://nodei.co/npm-dl/readable-stream.png?&months=6&height=3)](https://nodei.co/npm/readable-stream/) + +This package is a mirror of the Streams2 and Streams3 implementations in Node-core. + +If you want to guarantee a stable streams base, regardless of what version of Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core. + +**readable-stream** comes in two major versions, v1.0.x and v1.1.x. The former tracks the Streams2 implementation in Node 0.10, including bug-fixes and minor improvements as they are added. The latter tracks Streams3 as it develops in Node 0.11; we will likely see a v1.2.x branch for Node 0.12. + +**readable-stream** uses proper patch-level versioning so if you pin to `"~1.0.0"` you’ll get the latest Node 0.10 Streams2 implementation, including any fixes and minor non-breaking improvements. The patch-level versions of 1.0.x and 1.1.x should mirror the patch-level versions of Node-core releases. You should prefer the **1.0.x** releases for now and when you’re ready to start using Streams3, pin to `"~1.1.0"` + diff --git a/packages/NoGit.0.1.0/node_modules/readable-stream/duplex.js b/packages/NoGit.0.1.0/node_modules/readable-stream/duplex.js new file mode 100644 index 0000000..ca807af --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/duplex.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_duplex.js") diff --git a/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_duplex.js b/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_duplex.js new file mode 100644 index 0000000..b513d61 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_duplex.js @@ -0,0 +1,89 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. + +module.exports = Duplex; + +/**/ +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) keys.push(key); + return keys; +} +/**/ + + +/**/ +var util = require('core-util-is'); +util.inherits = require('inherits'); +/**/ + +var Readable = require('./_stream_readable'); +var Writable = require('./_stream_writable'); + +util.inherits(Duplex, Readable); + +forEach(objectKeys(Writable.prototype), function(method) { + if (!Duplex.prototype[method]) + Duplex.prototype[method] = Writable.prototype[method]; +}); + +function Duplex(options) { + if (!(this instanceof Duplex)) + return new Duplex(options); + + Readable.call(this, options); + Writable.call(this, options); + + if (options && options.readable === false) + this.readable = false; + + if (options && options.writable === false) + this.writable = false; + + this.allowHalfOpen = true; + if (options && options.allowHalfOpen === false) + this.allowHalfOpen = false; + + this.once('end', onend); +} + +// the no-half-open enforcer +function onend() { + // if we allow half-open state, or if the writable side ended, + // then we're ok. + if (this.allowHalfOpen || this._writableState.ended) + return; + + // no more data can be written. + // But allow more writes to happen in this tick. + process.nextTick(this.end.bind(this)); +} + +function forEach (xs, f) { + for (var i = 0, l = xs.length; i < l; i++) { + f(xs[i], i); + } +} diff --git a/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_passthrough.js b/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_passthrough.js new file mode 100644 index 0000000..895ca50 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_passthrough.js @@ -0,0 +1,46 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. + +module.exports = PassThrough; + +var Transform = require('./_stream_transform'); + +/**/ +var util = require('core-util-is'); +util.inherits = require('inherits'); +/**/ + +util.inherits(PassThrough, Transform); + +function PassThrough(options) { + if (!(this instanceof PassThrough)) + return new PassThrough(options); + + Transform.call(this, options); +} + +PassThrough.prototype._transform = function(chunk, encoding, cb) { + cb(null, chunk); +}; diff --git a/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_readable.js b/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_readable.js new file mode 100644 index 0000000..6307220 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_readable.js @@ -0,0 +1,982 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + +module.exports = Readable; + +/**/ +var isArray = require('isarray'); +/**/ + + +/**/ +var Buffer = require('buffer').Buffer; +/**/ + +Readable.ReadableState = ReadableState; + +var EE = require('events').EventEmitter; + +/**/ +if (!EE.listenerCount) EE.listenerCount = function(emitter, type) { + return emitter.listeners(type).length; +}; +/**/ + +var Stream = require('stream'); + +/**/ +var util = require('core-util-is'); +util.inherits = require('inherits'); +/**/ + +var StringDecoder; + +util.inherits(Readable, Stream); + +function ReadableState(options, stream) { + options = options || {}; + + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + var hwm = options.highWaterMark; + this.highWaterMark = (hwm || hwm === 0) ? hwm : 16 * 1024; + + // cast to ints. + this.highWaterMark = ~~this.highWaterMark; + + this.buffer = []; + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = false; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // In streams that never have any data, and do push(null) right away, + // the consumer can miss the 'end' event if they do some I/O before + // consuming the stream. So, we don't emit('end') until some reading + // happens. + this.calledRead = false; + + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, becuase any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + + + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away + this.objectMode = !!options.objectMode; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // when piping, we only care about 'readable' events that happen + // after read()ing all the bytes and not getting any pushback. + this.ranOut = false; + + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) + StringDecoder = require('string_decoder/').StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} + +function Readable(options) { + if (!(this instanceof Readable)) + return new Readable(options); + + this._readableState = new ReadableState(options, this); + + // legacy + this.readable = true; + + Stream.call(this); +} + +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function(chunk, encoding) { + var state = this._readableState; + + if (typeof chunk === 'string' && !state.objectMode) { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = new Buffer(chunk, encoding); + encoding = ''; + } + } + + return readableAddChunk(this, state, chunk, encoding, false); +}; + +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function(chunk) { + var state = this._readableState; + return readableAddChunk(this, state, chunk, '', true); +}; + +function readableAddChunk(stream, state, chunk, encoding, addToFront) { + var er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (chunk === null || chunk === undefined) { + state.reading = false; + if (!state.ended) + onEofChunk(stream, state); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (state.ended && !addToFront) { + var e = new Error('stream.push() after EOF'); + stream.emit('error', e); + } else if (state.endEmitted && addToFront) { + var e = new Error('stream.unshift() after end event'); + stream.emit('error', e); + } else { + if (state.decoder && !addToFront && !encoding) + chunk = state.decoder.write(chunk); + + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) { + state.buffer.unshift(chunk); + } else { + state.reading = false; + state.buffer.push(chunk); + } + + if (state.needReadable) + emitReadable(stream); + + maybeReadMore(stream, state); + } + } else if (!addToFront) { + state.reading = false; + } + + return needMoreData(state); +} + + + +// if it's past the high water mark, we can push in some more. +// Also, if we have no data yet, we can stand some +// more bytes. This is to work around cases where hwm=0, +// such as the repl. Also, if the push() triggered a +// readable event, and the user called read(largeNumber) such that +// needReadable was set, then we ought to push more, so that another +// 'readable' event will be triggered. +function needMoreData(state) { + return !state.ended && + (state.needReadable || + state.length < state.highWaterMark || + state.length === 0); +} + +// backwards compatibility. +Readable.prototype.setEncoding = function(enc) { + if (!StringDecoder) + StringDecoder = require('string_decoder/').StringDecoder; + this._readableState.decoder = new StringDecoder(enc); + this._readableState.encoding = enc; +}; + +// Don't raise the hwm > 128MB +var MAX_HWM = 0x800000; +function roundUpToNextPowerOf2(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + // Get the next highest power of 2 + n--; + for (var p = 1; p < 32; p <<= 1) n |= n >> p; + n++; + } + return n; +} + +function howMuchToRead(n, state) { + if (state.length === 0 && state.ended) + return 0; + + if (state.objectMode) + return n === 0 ? 0 : 1; + + if (n === null || isNaN(n)) { + // only flow one buffer at a time + if (state.flowing && state.buffer.length) + return state.buffer[0].length; + else + return state.length; + } + + if (n <= 0) + return 0; + + // If we're asking for more than the target buffer level, + // then raise the water mark. Bump up to the next highest + // power of 2, to prevent increasing it excessively in tiny + // amounts. + if (n > state.highWaterMark) + state.highWaterMark = roundUpToNextPowerOf2(n); + + // don't have that much. return null, unless we've ended. + if (n > state.length) { + if (!state.ended) { + state.needReadable = true; + return 0; + } else + return state.length; + } + + return n; +} + +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function(n) { + var state = this._readableState; + state.calledRead = true; + var nOrig = n; + var ret; + + if (typeof n !== 'number' || n > 0) + state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && + state.needReadable && + (state.length >= state.highWaterMark || state.ended)) { + emitReadable(this); + return null; + } + + n = howMuchToRead(n, state); + + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + ret = null; + + // In cases where the decoder did not receive enough data + // to produce a full chunk, then immediately received an + // EOF, state.buffer will contain [, ]. + // howMuchToRead will see this and coerce the amount to + // read to zero (because it's looking at the length of the + // first in state.buffer), and we'll end up here. + // + // This can only happen via state.decoder -- no other venue + // exists for pushing a zero-length chunk into state.buffer + // and triggering this behavior. In this case, we return our + // remaining data and end the stream, if appropriate. + if (state.length > 0 && state.decoder) { + ret = fromList(n, state); + state.length -= ret.length; + } + + if (state.length === 0) + endReadable(this); + + return ret; + } + + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + + // if we currently have less than the highWaterMark, then also read some + if (state.length - n <= state.highWaterMark) + doRead = true; + + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) + doRead = false; + + if (doRead) { + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) + state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + } + + // If _read called its callback synchronously, then `reading` + // will be false, and we need to re-evaluate how much data we + // can return to the user. + if (doRead && !state.reading) + n = howMuchToRead(nOrig, state); + + if (n > 0) + ret = fromList(n, state); + else + ret = null; + + if (ret === null) { + state.needReadable = true; + n = 0; + } + + state.length -= n; + + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (state.length === 0 && !state.ended) + state.needReadable = true; + + // If we happened to read() exactly the remaining amount in the + // buffer, and the EOF has been seen at this point, then make sure + // that we emit 'end' on the very next tick. + if (state.ended && !state.endEmitted && state.length === 0) + endReadable(this); + + return ret; +}; + +function chunkInvalid(state, chunk) { + var er = null; + if (!Buffer.isBuffer(chunk) && + 'string' !== typeof chunk && + chunk !== null && + chunk !== undefined && + !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + return er; +} + + +function onEofChunk(stream, state) { + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + + // if we've ended and we have some data left, then emit + // 'readable' now to make sure it gets picked up. + if (state.length > 0) + emitReadable(stream); + else + endReadable(stream); +} + +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + state.needReadable = false; + if (state.emittedReadable) + return; + + state.emittedReadable = true; + if (state.sync) + process.nextTick(function() { + emitReadable_(stream); + }); + else + emitReadable_(stream); +} + +function emitReadable_(stream) { + stream.emit('readable'); +} + + +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + process.nextTick(function() { + maybeReadMore_(stream, state); + }); + } +} + +function maybeReadMore_(stream, state) { + var len = state.length; + while (!state.reading && !state.flowing && !state.ended && + state.length < state.highWaterMark) { + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break; + else + len = state.length; + } + state.readingMore = false; +} + +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function(n) { + this.emit('error', new Error('not implemented')); +}; + +Readable.prototype.pipe = function(dest, pipeOpts) { + var src = this; + var state = this._readableState; + + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + + var doEnd = (!pipeOpts || pipeOpts.end !== false) && + dest !== process.stdout && + dest !== process.stderr; + + var endFn = doEnd ? onend : cleanup; + if (state.endEmitted) + process.nextTick(endFn); + else + src.once('end', endFn); + + dest.on('unpipe', onunpipe); + function onunpipe(readable) { + if (readable !== src) return; + cleanup(); + } + + function onend() { + dest.end(); + } + + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + + function cleanup() { + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', cleanup); + + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (!dest._writableState || dest._writableState.needDrain) + ondrain(); + } + + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + unpipe(); + dest.removeListener('error', onerror); + if (EE.listenerCount(dest, 'error') === 0) + dest.emit('error', er); + } + // This is a brutally ugly hack to make sure that our error handler + // is attached before any userland ones. NEVER DO THIS. + if (!dest._events || !dest._events.error) + dest.on('error', onerror); + else if (isArray(dest._events.error)) + dest._events.error.unshift(onerror); + else + dest._events.error = [onerror, dest._events.error]; + + + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + + function unpipe() { + src.unpipe(dest); + } + + // tell the dest that it's being piped to + dest.emit('pipe', src); + + // start the flow if it hasn't been started already. + if (!state.flowing) { + // the handler that waits for readable events after all + // the data gets sucked out in flow. + // This would be easier to follow with a .once() handler + // in flow(), but that is too slow. + this.on('readable', pipeOnReadable); + + state.flowing = true; + process.nextTick(function() { + flow(src); + }); + } + + return dest; +}; + +function pipeOnDrain(src) { + return function() { + var dest = this; + var state = src._readableState; + state.awaitDrain--; + if (state.awaitDrain === 0) + flow(src); + }; +} + +function flow(src) { + var state = src._readableState; + var chunk; + state.awaitDrain = 0; + + function write(dest, i, list) { + var written = dest.write(chunk); + if (false === written) { + state.awaitDrain++; + } + } + + while (state.pipesCount && null !== (chunk = src.read())) { + + if (state.pipesCount === 1) + write(state.pipes, 0, null); + else + forEach(state.pipes, write); + + src.emit('data', chunk); + + // if anyone needs a drain, then we have to wait for that. + if (state.awaitDrain > 0) + return; + } + + // if every destination was unpiped, either before entering this + // function, or in the while loop, then stop flowing. + // + // NB: This is a pretty rare edge case. + if (state.pipesCount === 0) { + state.flowing = false; + + // if there were data event listeners added, then switch to old mode. + if (EE.listenerCount(src, 'data') > 0) + emitDataEvents(src); + return; + } + + // at this point, no one needed a drain, so we just ran out of data + // on the next readable event, start it over again. + state.ranOut = true; +} + +function pipeOnReadable() { + if (this._readableState.ranOut) { + this._readableState.ranOut = false; + flow(this); + } +} + + +Readable.prototype.unpipe = function(dest) { + var state = this._readableState; + + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) + return this; + + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) + return this; + + if (!dest) + dest = state.pipes; + + // got a match. + state.pipes = null; + state.pipesCount = 0; + this.removeListener('readable', pipeOnReadable); + state.flowing = false; + if (dest) + dest.emit('unpipe', this); + return this; + } + + // slow case. multiple pipe destinations. + + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + this.removeListener('readable', pipeOnReadable); + state.flowing = false; + + for (var i = 0; i < len; i++) + dests[i].emit('unpipe', this); + return this; + } + + // try to find the right one. + var i = indexOf(state.pipes, dest); + if (i === -1) + return this; + + state.pipes.splice(i, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) + state.pipes = state.pipes[0]; + + dest.emit('unpipe', this); + + return this; +}; + +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function(ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + + if (ev === 'data' && !this._readableState.flowing) + emitDataEvents(this); + + if (ev === 'readable' && this.readable) { + var state = this._readableState; + if (!state.readableListening) { + state.readableListening = true; + state.emittedReadable = false; + state.needReadable = true; + if (!state.reading) { + this.read(0); + } else if (state.length) { + emitReadable(this, state); + } + } + } + + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; + +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function() { + emitDataEvents(this); + this.read(0); + this.emit('resume'); +}; + +Readable.prototype.pause = function() { + emitDataEvents(this, true); + this.emit('pause'); +}; + +function emitDataEvents(stream, startPaused) { + var state = stream._readableState; + + if (state.flowing) { + // https://github.com/isaacs/readable-stream/issues/16 + throw new Error('Cannot switch to old mode now.'); + } + + var paused = startPaused || false; + var readable = false; + + // convert to an old-style stream. + stream.readable = true; + stream.pipe = Stream.prototype.pipe; + stream.on = stream.addListener = Stream.prototype.on; + + stream.on('readable', function() { + readable = true; + + var c; + while (!paused && (null !== (c = stream.read()))) + stream.emit('data', c); + + if (c === null) { + readable = false; + stream._readableState.needReadable = true; + } + }); + + stream.pause = function() { + paused = true; + this.emit('pause'); + }; + + stream.resume = function() { + paused = false; + if (readable) + process.nextTick(function() { + stream.emit('readable'); + }); + else + this.read(0); + this.emit('resume'); + }; + + // now make it start, just in case it hadn't already. + stream.emit('readable'); +} + +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function(stream) { + var state = this._readableState; + var paused = false; + + var self = this; + stream.on('end', function() { + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) + self.push(chunk); + } + + self.push(null); + }); + + stream.on('data', function(chunk) { + if (state.decoder) + chunk = state.decoder.write(chunk); + + // don't skip over falsy values in objectMode + //if (state.objectMode && util.isNullOrUndefined(chunk)) + if (state.objectMode && (chunk === null || chunk === undefined)) + return; + else if (!state.objectMode && (!chunk || !chunk.length)) + return; + + var ret = self.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); + + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (typeof stream[i] === 'function' && + typeof this[i] === 'undefined') { + this[i] = function(method) { return function() { + return stream[method].apply(stream, arguments); + }}(i); + } + } + + // proxy certain important events. + var events = ['error', 'close', 'destroy', 'pause', 'resume']; + forEach(events, function(ev) { + stream.on(ev, self.emit.bind(self, ev)); + }); + + // when we try to consume some more bytes, simply unpause the + // underlying stream. + self._read = function(n) { + if (paused) { + paused = false; + stream.resume(); + } + }; + + return self; +}; + + + +// exposed for testing purposes only. +Readable._fromList = fromList; + +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +function fromList(n, state) { + var list = state.buffer; + var length = state.length; + var stringMode = !!state.decoder; + var objectMode = !!state.objectMode; + var ret; + + // nothing in the list, definitely empty. + if (list.length === 0) + return null; + + if (length === 0) + ret = null; + else if (objectMode) + ret = list.shift(); + else if (!n || n >= length) { + // read it all, truncate the array. + if (stringMode) + ret = list.join(''); + else + ret = Buffer.concat(list, length); + list.length = 0; + } else { + // read just some of it. + if (n < list[0].length) { + // just take a part of the first list item. + // slice is the same for buffers and strings. + var buf = list[0]; + ret = buf.slice(0, n); + list[0] = buf.slice(n); + } else if (n === list[0].length) { + // first list is a perfect match + ret = list.shift(); + } else { + // complex case. + // we have enough to cover it, but it spans past the first buffer. + if (stringMode) + ret = ''; + else + ret = new Buffer(n); + + var c = 0; + for (var i = 0, l = list.length; i < l && c < n; i++) { + var buf = list[0]; + var cpy = Math.min(n - c, buf.length); + + if (stringMode) + ret += buf.slice(0, cpy); + else + buf.copy(ret, c, 0, cpy); + + if (cpy < buf.length) + list[0] = buf.slice(cpy); + else + list.shift(); + + c += cpy; + } + } + } + + return ret; +} + +function endReadable(stream) { + var state = stream._readableState; + + // If we get here before consuming all the bytes, then that is a + // bug in node. Should never happen. + if (state.length > 0) + throw new Error('endReadable called on non-empty stream'); + + if (!state.endEmitted && state.calledRead) { + state.ended = true; + process.nextTick(function() { + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + } + }); + } +} + +function forEach (xs, f) { + for (var i = 0, l = xs.length; i < l; i++) { + f(xs[i], i); + } +} + +function indexOf (xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} diff --git a/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_transform.js b/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_transform.js new file mode 100644 index 0000000..eb188df --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_transform.js @@ -0,0 +1,210 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + + +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. + +module.exports = Transform; + +var Duplex = require('./_stream_duplex'); + +/**/ +var util = require('core-util-is'); +util.inherits = require('inherits'); +/**/ + +util.inherits(Transform, Duplex); + + +function TransformState(options, stream) { + this.afterTransform = function(er, data) { + return afterTransform(stream, er, data); + }; + + this.needTransform = false; + this.transforming = false; + this.writecb = null; + this.writechunk = null; +} + +function afterTransform(stream, er, data) { + var ts = stream._transformState; + ts.transforming = false; + + var cb = ts.writecb; + + if (!cb) + return stream.emit('error', new Error('no writecb in Transform class')); + + ts.writechunk = null; + ts.writecb = null; + + if (data !== null && data !== undefined) + stream.push(data); + + if (cb) + cb(er); + + var rs = stream._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + stream._read(rs.highWaterMark); + } +} + + +function Transform(options) { + if (!(this instanceof Transform)) + return new Transform(options); + + Duplex.call(this, options); + + var ts = this._transformState = new TransformState(options, this); + + // when the writable side finishes, then flush out anything remaining. + var stream = this; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; + + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + + this.once('finish', function() { + if ('function' === typeof this._flush) + this._flush(function(er) { + done(stream, er); + }); + else + done(stream); + }); +} + +Transform.prototype.push = function(chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; + +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function(chunk, encoding, cb) { + throw new Error('not implemented'); +}; + +Transform.prototype._write = function(chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || + rs.needReadable || + rs.length < rs.highWaterMark) + this._read(rs.highWaterMark); + } +}; + +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function(n) { + var ts = this._transformState; + + if (ts.writechunk !== null && ts.writecb && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; + + +function done(stream, er) { + if (er) + return stream.emit('error', er); + + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + var ws = stream._writableState; + var rs = stream._readableState; + var ts = stream._transformState; + + if (ws.length) + throw new Error('calling transform done when ws.length != 0'); + + if (ts.transforming) + throw new Error('calling transform done when still transforming'); + + return stream.push(null); +} diff --git a/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_writable.js b/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_writable.js new file mode 100644 index 0000000..4bdaa4f --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/lib/_stream_writable.js @@ -0,0 +1,386 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + +// A bit simpler than readable streams. +// Implement an async ._write(chunk, cb), and it'll handle all +// the drain event emission and buffering. + +module.exports = Writable; + +/**/ +var Buffer = require('buffer').Buffer; +/**/ + +Writable.WritableState = WritableState; + + +/**/ +var util = require('core-util-is'); +util.inherits = require('inherits'); +/**/ + +var Stream = require('stream'); + +util.inherits(Writable, Stream); + +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; +} + +function WritableState(options, stream) { + options = options || {}; + + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + var hwm = options.highWaterMark; + this.highWaterMark = (hwm || hwm === 0) ? hwm : 16 * 1024; + + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + + // cast to ints. + this.highWaterMark = ~~this.highWaterMark; + + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; + + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; + + // a flag to see when we're in the middle of a write. + this.writing = false; + + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, becuase any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; + + // the callback that's passed to _write(chunk,cb) + this.onwrite = function(er) { + onwrite(stream, er); + }; + + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + + // the amount that is being written when _write is called. + this.writelen = 0; + + this.buffer = []; + + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; +} + +function Writable(options) { + var Duplex = require('./_stream_duplex'); + + // Writable ctor is applied to Duplexes, though they're not + // instanceof Writable, they're instanceof Readable. + if (!(this instanceof Writable) && !(this instanceof Duplex)) + return new Writable(options); + + this._writableState = new WritableState(options, this); + + // legacy. + this.writable = true; + + Stream.call(this); +} + +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function() { + this.emit('error', new Error('Cannot pipe. Not readable.')); +}; + + +function writeAfterEnd(stream, state, cb) { + var er = new Error('write after end'); + // TODO: defer error events consistently everywhere, not just the cb + stream.emit('error', er); + process.nextTick(function() { + cb(er); + }); +} + +// If we get something that is not a buffer, string, null, or undefined, +// and we're not in objectMode, then that's an error. +// Otherwise stream chunks are all considered to be of length=1, and the +// watermarks determine how many objects to keep in the buffer, rather than +// how many bytes or characters. +function validChunk(stream, state, chunk, cb) { + var valid = true; + if (!Buffer.isBuffer(chunk) && + 'string' !== typeof chunk && + chunk !== null && + chunk !== undefined && + !state.objectMode) { + var er = new TypeError('Invalid non-string/buffer chunk'); + stream.emit('error', er); + process.nextTick(function() { + cb(er); + }); + valid = false; + } + return valid; +} + +Writable.prototype.write = function(chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (Buffer.isBuffer(chunk)) + encoding = 'buffer'; + else if (!encoding) + encoding = state.defaultEncoding; + + if (typeof cb !== 'function') + cb = function() {}; + + if (state.ended) + writeAfterEnd(this, state, cb); + else if (validChunk(this, state, chunk, cb)) + ret = writeOrBuffer(this, state, chunk, encoding, cb); + + return ret; +}; + +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && + state.decodeStrings !== false && + typeof chunk === 'string') { + chunk = new Buffer(chunk, encoding); + } + return chunk; +} + +// if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, chunk, encoding, cb) { + chunk = decodeChunk(state, chunk, encoding); + if (Buffer.isBuffer(chunk)) + encoding = 'buffer'; + var len = state.objectMode ? 1 : chunk.length; + + state.length += len; + + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) + state.needDrain = true; + + if (state.writing) + state.buffer.push(new WriteReq(chunk, encoding, cb)); + else + doWrite(stream, state, len, chunk, encoding, cb); + + return ret; +} + +function doWrite(stream, state, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} + +function onwriteError(stream, state, sync, er, cb) { + if (sync) + process.nextTick(function() { + cb(er); + }); + else + cb(er); + + stream._writableState.errorEmitted = true; + stream.emit('error', er); +} + +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} + +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + + onwriteStateUpdate(state); + + if (er) + onwriteError(stream, state, sync, er, cb); + else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(stream, state); + + if (!finished && !state.bufferProcessing && state.buffer.length) + clearBuffer(stream, state); + + if (sync) { + process.nextTick(function() { + afterWrite(stream, state, finished, cb); + }); + } else { + afterWrite(stream, state, finished, cb); + } + } +} + +function afterWrite(stream, state, finished, cb) { + if (!finished) + onwriteDrain(stream, state); + cb(); + if (finished) + finishMaybe(stream, state); +} + +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } +} + + +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + + for (var c = 0; c < state.buffer.length; c++) { + var entry = state.buffer[c]; + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + + doWrite(stream, state, len, chunk, encoding, cb); + + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + c++; + break; + } + } + + state.bufferProcessing = false; + if (c < state.buffer.length) + state.buffer = state.buffer.slice(c); + else + state.buffer.length = 0; +} + +Writable.prototype._write = function(chunk, encoding, cb) { + cb(new Error('not implemented')); +}; + +Writable.prototype.end = function(chunk, encoding, cb) { + var state = this._writableState; + + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (typeof chunk !== 'undefined' && chunk !== null) + this.write(chunk, encoding); + + // ignore unnecessary end() calls. + if (!state.ending && !state.finished) + endWritable(this, state, cb); +}; + + +function needFinish(stream, state) { + return (state.ending && + state.length === 0 && + !state.finished && + !state.writing); +} + +function finishMaybe(stream, state) { + var need = needFinish(stream, state); + if (need) { + state.finished = true; + stream.emit('finish'); + } + return need; +} + +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) + process.nextTick(cb); + else + stream.once('finish', cb); + } + state.ended = true; +} diff --git a/packages/NoGit.0.1.0/node_modules/readable-stream/package.json b/packages/NoGit.0.1.0/node_modules/readable-stream/package.json new file mode 100644 index 0000000..facf5b5 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/package.json @@ -0,0 +1,100 @@ +{ + "_args": [ + [ + "readable-stream@~1.0.26", + "C:\\temp\\forpg\\node_modules\\archiver" + ] + ], + "_from": "readable-stream@>=1.0.26 <1.1.0", + "_id": "readable-stream@1.0.33", + "_inCache": true, + "_location": "/readable-stream", + "_npmUser": { + "email": "rod@vagg.org", + "name": "rvagg" + }, + "_npmVersion": "1.4.28", + "_phantomChildren": {}, + "_requested": { + "name": "readable-stream", + "raw": "readable-stream@~1.0.26", + "rawSpec": "~1.0.26", + "scope": null, + "spec": ">=1.0.26 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/archiver", + "/bl", + "/compress-commons", + "/crc32-stream", + "/lazystream", + "/tar-stream", + "/zip-stream" + ], + "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "_shasum": "3a360dd66c1b1d7fd4705389860eda1d0f61126c", + "_shrinkwrap": null, + "_spec": "readable-stream@~1.0.26", + "_where": "C:\\temp\\forpg\\node_modules\\archiver", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "browser": { + "util": false + }, + "bugs": { + "url": "https://github.com/isaacs/readable-stream/issues" + }, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + }, + "description": "Streams2, a user-land copy of the stream library from Node.js v0.10.x", + "devDependencies": { + "tap": "~0.2.6" + }, + "directories": {}, + "dist": { + "shasum": "3a360dd66c1b1d7fd4705389860eda1d0f61126c", + "tarball": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz" + }, + "gitHead": "0bf97a117c5646556548966409ebc57a6dda2638", + "homepage": "https://github.com/isaacs/readable-stream", + "installable": true, + "keywords": [ + "pipe", + "readable", + "stream" + ], + "license": "MIT", + "main": "readable.js", + "maintainers": [ + { + "name": "isaacs", + "email": "i@izs.me" + }, + { + "name": "tootallnate", + "email": "nathan@tootallnate.net" + }, + { + "name": "rvagg", + "email": "rod@vagg.org" + } + ], + "name": "readable-stream", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/readable-stream" + }, + "scripts": { + "test": "tap test/simple/*.js" + }, + "version": "1.0.33" +} diff --git a/packages/NoGit.0.1.0/node_modules/readable-stream/passthrough.js b/packages/NoGit.0.1.0/node_modules/readable-stream/passthrough.js new file mode 100644 index 0000000..27e8d8a --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/passthrough.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_passthrough.js") diff --git a/packages/NoGit.0.1.0/node_modules/readable-stream/readable.js b/packages/NoGit.0.1.0/node_modules/readable-stream/readable.js new file mode 100644 index 0000000..8b5337b --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/readable.js @@ -0,0 +1,8 @@ +var Stream = require('stream'); // hack to fix a circular dependency issue when used with browserify +exports = module.exports = require('./lib/_stream_readable.js'); +exports.Stream = Stream; +exports.Readable = exports; +exports.Writable = require('./lib/_stream_writable.js'); +exports.Duplex = require('./lib/_stream_duplex.js'); +exports.Transform = require('./lib/_stream_transform.js'); +exports.PassThrough = require('./lib/_stream_passthrough.js'); diff --git a/packages/NoGit.0.1.0/node_modules/readable-stream/transform.js b/packages/NoGit.0.1.0/node_modules/readable-stream/transform.js new file mode 100644 index 0000000..5d482f0 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/transform.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_transform.js") diff --git a/packages/NoGit.0.1.0/node_modules/readable-stream/writable.js b/packages/NoGit.0.1.0/node_modules/readable-stream/writable.js new file mode 100644 index 0000000..e1e9efd --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/readable-stream/writable.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_writable.js") diff --git a/packages/NoGit.0.1.0/node_modules/rimraf/LICENSE b/packages/NoGit.0.1.0/node_modules/rimraf/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/rimraf/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, 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 THIS SOFTWARE. diff --git a/packages/NoGit.0.1.0/node_modules/rimraf/README.md b/packages/NoGit.0.1.0/node_modules/rimraf/README.md new file mode 100644 index 0000000..18659f6 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/rimraf/README.md @@ -0,0 +1,38 @@ +[![Build Status](https://travis-ci.org/isaacs/rimraf.svg?branch=master)](https://travis-ci.org/isaacs/rimraf) [![Dependency Status](https://david-dm.org/isaacs/rimraf.svg)](https://david-dm.org/isaacs/rimraf) [![devDependency Status](https://david-dm.org/isaacs/rimraf/dev-status.svg)](https://david-dm.org/isaacs/rimraf#info=devDependencies) + +The [UNIX command](http://en.wikipedia.org/wiki/Rm_(Unix)) `rm -rf` for node. + +Install with `npm install rimraf`, or just drop rimraf.js somewhere. + +## API + +`rimraf(f, callback)` + +The callback will be called with an error if there is one. Certain +errors are handled for you: + +* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of + `opts.maxBusyTries` times before giving up, adding 100ms of wait + between each attempt. The default `maxBusyTries` is 3. +* `ENOENT` - If the file doesn't exist, rimraf will return + successfully, since your desired outcome is already the case. +* `EMFILE` - Since `readdir` requires opening a file descriptor, it's + possible to hit `EMFILE` if too many file descriptors are in use. + In the sync case, there's nothing to be done for this. But in the + async case, rimraf will gradually back off with timeouts up to + `opts.emfileWait` ms, which defaults to 1000. + +## rimraf.sync + +It can remove stuff synchronously, too. But that's not so good. Use +the async API. It's better. + +## CLI + +If installed with `npm install rimraf -g` it can be used as a global +command `rimraf [ ...]` which is useful for cross platform support. + +## mkdirp + +If you need to create a directory recursively, check out +[mkdirp](https://github.com/substack/node-mkdirp). diff --git a/packages/NoGit.0.1.0/node_modules/rimraf/bin.js b/packages/NoGit.0.1.0/node_modules/rimraf/bin.js new file mode 100644 index 0000000..1bd5a0d --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/rimraf/bin.js @@ -0,0 +1,40 @@ +#!/usr/bin/env node + +var rimraf = require('./') + +var help = false +var dashdash = false +var args = process.argv.slice(2).filter(function(arg) { + if (dashdash) + return !!arg + else if (arg === '--') + dashdash = true + else if (arg.match(/^(-+|\/)(h(elp)?|\?)$/)) + help = true + else + return !!arg +}); + +if (help || args.length === 0) { + // If they didn't ask for help, then this is not a "success" + var log = help ? console.log : console.error + log('Usage: rimraf [ ...]') + log('') + log(' Deletes all files and folders at "path" recursively.') + log('') + log('Options:') + log('') + log(' -h, --help Display this usage info') + process.exit(help ? 0 : 1) +} else + go(0) + +function go (n) { + if (n >= args.length) + return + rimraf(args[n], function (er) { + if (er) + throw er + go(n+1) + }) +} diff --git a/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/LICENSE b/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, 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 THIS SOFTWARE. diff --git a/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/README.md b/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/README.md new file mode 100644 index 0000000..063cf95 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/README.md @@ -0,0 +1,377 @@ +[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Dependency Status](https://david-dm.org/isaacs/node-glob.svg)](https://david-dm.org/isaacs/node-glob) [![devDependency Status](https://david-dm.org/isaacs/node-glob/dev-status.svg)](https://david-dm.org/isaacs/node-glob#info=devDependencies) [![optionalDependency Status](https://david-dm.org/isaacs/node-glob/optional-status.svg)](https://david-dm.org/isaacs/node-glob#info=optionalDependencies) + +# Glob + +Match files using the patterns the shell uses, like stars and stuff. + +This is a glob implementation in JavaScript. It uses the `minimatch` +library to do its matching. + +![](oh-my-glob.gif) + +## Usage + +```javascript +var glob = require("glob") + +// options is optional +glob("**/*.js", options, function (er, files) { + // files is an array of filenames. + // If the `nonull` option is set, and nothing + // was found, then files is ["**/*.js"] + // er is an error object or null. +}) +``` + +## Glob Primer + +"Globs" are the patterns you type when you do stuff like `ls *.js` on +the command line, or put `build/*` in a `.gitignore` file. + +Before parsing the path part patterns, braced sections are expanded +into a set. Braced sections start with `{` and end with `}`, with any +number of comma-delimited sections within. Braced sections may contain +slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`. + +The following characters have special magic meaning when used in a +path portion: + +* `*` Matches 0 or more characters in a single path portion +* `?` Matches 1 character +* `[...]` Matches a range of characters, similar to a RegExp range. + If the first character of the range is `!` or `^` then it matches + any character not in the range. +* `!(pattern|pattern|pattern)` Matches anything that does not match + any of the patterns provided. +* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the + patterns provided. +* `+(pattern|pattern|pattern)` Matches one or more occurrences of the + patterns provided. +* `*(a|b|c)` Matches zero or more occurrences of the patterns provided +* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns + provided +* `**` If a "globstar" is alone in a path portion, then it matches + zero or more directories and subdirectories searching for matches. + It does not crawl symlinked directories. + +### Dots + +If a file or directory path portion has a `.` as the first character, +then it will not match any glob pattern unless that pattern's +corresponding path part also has a `.` as its first character. + +For example, the pattern `a/.*/c` would match the file at `a/.b/c`. +However the pattern `a/*/c` would not, because `*` does not start with +a dot character. + +You can make glob treat dots as normal characters by setting +`dot:true` in the options. + +### Basename Matching + +If you set `matchBase:true` in the options, and the pattern has no +slashes in it, then it will seek for any file anywhere in the tree +with a matching basename. For example, `*.js` would match +`test/simple/basic.js`. + +### Negation + +The intent for negation would be for a pattern starting with `!` to +match everything that *doesn't* match the supplied pattern. However, +the implementation is weird, and for the time being, this should be +avoided. The behavior is deprecated in version 5, and will be removed +entirely in version 6. + +### Empty Sets + +If no matching files are found, then an empty array is returned. This +differs from the shell, where the pattern itself is returned. For +example: + + $ echo a*s*d*f + a*s*d*f + +To get the bash-style behavior, set the `nonull:true` in the options. + +### See Also: + +* `man sh` +* `man bash` (Search for "Pattern Matching") +* `man 3 fnmatch` +* `man 5 gitignore` +* [minimatch documentation](https://github.com/isaacs/minimatch) + +## glob.hasMagic(pattern, [options]) + +Returns `true` if there are any special characters in the pattern, and +`false` otherwise. + +Note that the options affect the results. If `noext:true` is set in +the options object, then `+(a|b)` will not be considered a magic +pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}` +then that is considered magical, unless `nobrace:true` is set in the +options. + +## glob(pattern, [options], cb) + +* `pattern` {String} Pattern to be matched +* `options` {Object} +* `cb` {Function} + * `err` {Error | null} + * `matches` {Array} filenames found matching the pattern + +Perform an asynchronous glob search. + +## glob.sync(pattern, [options]) + +* `pattern` {String} Pattern to be matched +* `options` {Object} +* return: {Array} filenames found matching the pattern + +Perform a synchronous glob search. + +## Class: glob.Glob + +Create a Glob object by instantiating the `glob.Glob` class. + +```javascript +var Glob = require("glob").Glob +var mg = new Glob(pattern, options, cb) +``` + +It's an EventEmitter, and starts walking the filesystem to find matches +immediately. + +### new glob.Glob(pattern, [options], [cb]) + +* `pattern` {String} pattern to search for +* `options` {Object} +* `cb` {Function} Called when an error occurs, or matches are found + * `err` {Error | null} + * `matches` {Array} filenames found matching the pattern + +Note that if the `sync` flag is set in the options, then matches will +be immediately available on the `g.found` member. + +### Properties + +* `minimatch` The minimatch object that the glob uses. +* `options` The options object passed in. +* `aborted` Boolean which is set to true when calling `abort()`. There + is no way at this time to continue a glob search after aborting, but + you can re-use the statCache to avoid having to duplicate syscalls. +* `cache` Convenience object. Each field has the following possible + values: + * `false` - Path does not exist + * `true` - Path exists + * `'DIR'` - Path exists, and is not a directory + * `'FILE'` - Path exists, and is a directory + * `[file, entries, ...]` - Path exists, is a directory, and the + array value is the results of `fs.readdir` +* `statCache` Cache of `fs.stat` results, to prevent statting the same + path multiple times. +* `symlinks` A record of which paths are symbolic links, which is + relevant in resolving `**` patterns. +* `realpathCache` An optional object which is passed to `fs.realpath` + to minimize unnecessary syscalls. It is stored on the instantiated + Glob object, and may be re-used. + +### Events + +* `end` When the matching is finished, this is emitted with all the + matches found. If the `nonull` option is set, and no match was found, + then the `matches` list contains the original pattern. The matches + are sorted, unless the `nosort` flag is set. +* `match` Every time a match is found, this is emitted with the matched. +* `error` Emitted when an unexpected error is encountered, or whenever + any fs error occurs if `options.strict` is set. +* `abort` When `abort()` is called, this event is raised. + +### Methods + +* `pause` Temporarily stop the search +* `resume` Resume the search +* `abort` Stop the search forever + +### Options + +All the options that can be passed to Minimatch can also be passed to +Glob to change pattern matching behavior. Also, some have been added, +or have glob-specific ramifications. + +All options are false by default, unless otherwise noted. + +All options are added to the Glob object, as well. + +If you are running many `glob` operations, you can pass a Glob object +as the `options` argument to a subsequent operation to shortcut some +`stat` and `readdir` calls. At the very least, you may pass in shared +`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that +parallel glob operations will be sped up by sharing information about +the filesystem. + +* `cwd` The current working directory in which to search. Defaults + to `process.cwd()`. +* `root` The place where patterns starting with `/` will be mounted + onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix + systems, and `C:\` or some such on Windows.) +* `dot` Include `.dot` files in normal matches and `globstar` matches. + Note that an explicit dot in a portion of the pattern will always + match dot files. +* `nomount` By default, a pattern starting with a forward-slash will be + "mounted" onto the root setting, so that a valid filesystem path is + returned. Set this flag to disable that behavior. +* `mark` Add a `/` character to directory matches. Note that this + requires additional stat calls. +* `nosort` Don't sort the results. +* `stat` Set to true to stat *all* results. This reduces performance + somewhat, and is completely unnecessary, unless `readdir` is presumed + to be an untrustworthy indicator of file existence. +* `silent` When an unusual error is encountered when attempting to + read a directory, a warning will be printed to stderr. Set the + `silent` option to true to suppress these warnings. +* `strict` When an unusual error is encountered when attempting to + read a directory, the process will just continue on in search of + other matches. Set the `strict` option to raise an error in these + cases. +* `cache` See `cache` property above. Pass in a previously generated + cache object to save some fs calls. +* `statCache` A cache of results of filesystem information, to prevent + unnecessary stat calls. While it should not normally be necessary + to set this, you may pass the statCache from one glob() call to the + options object of another, if you know that the filesystem will not + change between calls. (See "Race Conditions" below.) +* `symlinks` A cache of known symbolic links. You may pass in a + previously generated `symlinks` object to save `lstat` calls when + resolving `**` matches. +* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead. +* `nounique` In some cases, brace-expanded patterns can result in the + same file showing up multiple times in the result set. By default, + this implementation prevents duplicates in the result set. Set this + flag to disable that behavior. +* `nonull` Set to never return an empty set, instead returning a set + containing the pattern itself. This is the default in glob(3). +* `debug` Set to enable debug logging in minimatch and glob. +* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets. +* `noglobstar` Do not match `**` against multiple filenames. (Ie, + treat it as a normal `*` instead.) +* `noext` Do not match `+(a|b)` "extglob" patterns. +* `nocase` Perform a case-insensitive match. Note: on + case-insensitive filesystems, non-magic patterns will match by + default, since `stat` and `readdir` will not raise errors. +* `matchBase` Perform a basename-only match if the pattern does not + contain any slash characters. That is, `*.js` would be treated as + equivalent to `**/*.js`, matching all js files in all directories. +* `nodir` Do not match directories, only files. (Note: to match + *only* directories, simply put a `/` at the end of the pattern.) +* `ignore` Add a pattern or an array of patterns to exclude matches. +* `follow` Follow symlinked directories when expanding `**` patterns. + Note that this can result in a lot of duplicate references in the + presence of cyclic links. +* `realpath` Set to true to call `fs.realpath` on all of the results. + In the case of a symlink that cannot be resolved, the full absolute + path to the matched entry is returned (though it will usually be a + broken symlink) +* `nonegate` Suppress deprecated `negate` behavior. (See below.) + Default=true +* `nocomment` Suppress deprecated `comment` behavior. (See below.) + Default=true + +## Comparisons to other fnmatch/glob implementations + +While strict compliance with the existing standards is a worthwhile +goal, some discrepancies exist between node-glob and other +implementations, and are intentional. + +The double-star character `**` is supported by default, unless the +`noglobstar` flag is set. This is supported in the manner of bsdglob +and bash 4.3, where `**` only has special significance if it is the only +thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but +`a/**b` will not. + +Note that symlinked directories are not crawled as part of a `**`, +though their contents may match against subsequent portions of the +pattern. This prevents infinite loops and duplicates and the like. + +If an escaped pattern has no matches, and the `nonull` flag is set, +then glob returns the pattern as-provided, rather than +interpreting the character escapes. For example, +`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than +`"*a?"`. This is akin to setting the `nullglob` option in bash, except +that it does not resolve escaped pattern characters. + +If brace expansion is not disabled, then it is performed before any +other interpretation of the glob pattern. Thus, a pattern like +`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded +**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are +checked for validity. Since those two are valid, matching proceeds. + +### Comments and Negation + +**Note**: In version 5 of this module, negation and comments are +**disabled** by default. You can explicitly set `nonegate:false` or +`nocomment:false` to re-enable them. They are going away entirely in +version 6. + +The intent for negation would be for a pattern starting with `!` to +match everything that *doesn't* match the supplied pattern. However, +the implementation is weird. It is better to use the `ignore` option +to set a pattern or set of patterns to exclude from matches. If you +want the "everything except *x*" type of behavior, you can use `**` as +the main pattern, and set an `ignore` for the things to exclude. + +The comments feature is added in minimatch, primarily to more easily +support use cases like ignore files, where a `#` at the start of a +line makes the pattern "empty". However, in the context of a +straightforward filesystem globber, "comments" don't make much sense. + +## Windows + +**Please only use forward-slashes in glob expressions.** + +Though windows uses either `/` or `\` as its path separator, only `/` +characters are used by this glob implementation. You must use +forward-slashes **only** in glob expressions. Back-slashes will always +be interpreted as escape characters, not path separators. + +Results from absolute patterns such as `/foo/*` are mounted onto the +root setting using `path.join`. On windows, this will by default result +in `/foo/*` matching `C:\foo\bar.txt`. + +## Race Conditions + +Glob searching, by its very nature, is susceptible to race conditions, +since it relies on directory walking and such. + +As a result, it is possible that a file that exists when glob looks for +it may have been deleted or modified by the time it returns the result. + +As part of its internal implementation, this program caches all stat +and readdir calls that it makes, in order to cut down on system +overhead. However, this also makes it even more susceptible to races, +especially if the cache or statCache objects are reused between glob +calls. + +Users are thus advised not to use a glob result as a guarantee of +filesystem state in the face of rapid changes. For the vast majority +of operations, this is never a problem. + +## Contributing + +Any change to behavior (including bugfixes) must come with a test. + +Patches that fail tests or reduce performance will be rejected. + +``` +# to run tests +npm test + +# to re-generate test fixtures +npm run test-regen + +# to benchmark against bash/zsh +npm run bench + +# to profile javascript +npm run prof +``` diff --git a/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/common.js b/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/common.js new file mode 100644 index 0000000..e36a631 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/common.js @@ -0,0 +1,245 @@ +exports.alphasort = alphasort +exports.alphasorti = alphasorti +exports.setopts = setopts +exports.ownProp = ownProp +exports.makeAbs = makeAbs +exports.finish = finish +exports.mark = mark +exports.isIgnored = isIgnored +exports.childrenIgnored = childrenIgnored + +function ownProp (obj, field) { + return Object.prototype.hasOwnProperty.call(obj, field) +} + +var path = require("path") +var minimatch = require("minimatch") +var isAbsolute = require("path-is-absolute") +var Minimatch = minimatch.Minimatch + +function alphasorti (a, b) { + return a.toLowerCase().localeCompare(b.toLowerCase()) +} + +function alphasort (a, b) { + return a.localeCompare(b) +} + +function setupIgnores (self, options) { + self.ignore = options.ignore || [] + + if (!Array.isArray(self.ignore)) + self.ignore = [self.ignore] + + if (self.ignore.length) { + self.ignore = self.ignore.map(ignoreMap) + } +} + +function ignoreMap (pattern) { + var gmatcher = null + if (pattern.slice(-3) === '/**') { + var gpattern = pattern.replace(/(\/\*\*)+$/, '') + gmatcher = new Minimatch(gpattern) + } + + return { + matcher: new Minimatch(pattern), + gmatcher: gmatcher + } +} + +function setopts (self, pattern, options) { + if (!options) + options = {} + + // base-matching: just use globstar for that. + if (options.matchBase && -1 === pattern.indexOf("/")) { + if (options.noglobstar) { + throw new Error("base matching requires globstar") + } + pattern = "**/" + pattern + } + + self.silent = !!options.silent + self.pattern = pattern + self.strict = options.strict !== false + self.realpath = !!options.realpath + self.realpathCache = options.realpathCache || Object.create(null) + self.follow = !!options.follow + self.dot = !!options.dot + self.mark = !!options.mark + self.nodir = !!options.nodir + if (self.nodir) + self.mark = true + self.sync = !!options.sync + self.nounique = !!options.nounique + self.nonull = !!options.nonull + self.nosort = !!options.nosort + self.nocase = !!options.nocase + self.stat = !!options.stat + self.noprocess = !!options.noprocess + + self.maxLength = options.maxLength || Infinity + self.cache = options.cache || Object.create(null) + self.statCache = options.statCache || Object.create(null) + self.symlinks = options.symlinks || Object.create(null) + + setupIgnores(self, options) + + self.changedCwd = false + var cwd = process.cwd() + if (!ownProp(options, "cwd")) + self.cwd = cwd + else { + self.cwd = options.cwd + self.changedCwd = path.resolve(options.cwd) !== cwd + } + + self.root = options.root || path.resolve(self.cwd, "/") + self.root = path.resolve(self.root) + if (process.platform === "win32") + self.root = self.root.replace(/\\/g, "/") + + self.nomount = !!options.nomount + + // disable comments and negation unless the user explicitly + // passes in false as the option. + options.nonegate = options.nonegate === false ? false : true + options.nocomment = options.nocomment === false ? false : true + deprecationWarning(options) + + self.minimatch = new Minimatch(pattern, options) + self.options = self.minimatch.options +} + +// TODO(isaacs): remove entirely in v6 +// exported to reset in tests +exports.deprecationWarned +function deprecationWarning(options) { + if (!options.nonegate || !options.nocomment) { + if (process.noDeprecation !== true && !exports.deprecationWarned) { + var msg = 'glob WARNING: comments and negation will be disabled in v6' + if (process.throwDeprecation) + throw new Error(msg) + else if (process.traceDeprecation) + console.trace(msg) + else + console.error(msg) + + exports.deprecationWarned = true + } + } +} + +function finish (self) { + var nou = self.nounique + var all = nou ? [] : Object.create(null) + + for (var i = 0, l = self.matches.length; i < l; i ++) { + var matches = self.matches[i] + if (!matches || Object.keys(matches).length === 0) { + if (self.nonull) { + // do like the shell, and spit out the literal glob + var literal = self.minimatch.globSet[i] + if (nou) + all.push(literal) + else + all[literal] = true + } + } else { + // had matches + var m = Object.keys(matches) + if (nou) + all.push.apply(all, m) + else + m.forEach(function (m) { + all[m] = true + }) + } + } + + if (!nou) + all = Object.keys(all) + + if (!self.nosort) + all = all.sort(self.nocase ? alphasorti : alphasort) + + // at *some* point we statted all of these + if (self.mark) { + for (var i = 0; i < all.length; i++) { + all[i] = self._mark(all[i]) + } + if (self.nodir) { + all = all.filter(function (e) { + return !(/\/$/.test(e)) + }) + } + } + + if (self.ignore.length) + all = all.filter(function(m) { + return !isIgnored(self, m) + }) + + self.found = all +} + +function mark (self, p) { + var abs = makeAbs(self, p) + var c = self.cache[abs] + var m = p + if (c) { + var isDir = c === 'DIR' || Array.isArray(c) + var slash = p.slice(-1) === '/' + + if (isDir && !slash) + m += '/' + else if (!isDir && slash) + m = m.slice(0, -1) + + if (m !== p) { + var mabs = makeAbs(self, m) + self.statCache[mabs] = self.statCache[abs] + self.cache[mabs] = self.cache[abs] + } + } + + return m +} + +// lotta situps... +function makeAbs (self, f) { + var abs = f + if (f.charAt(0) === '/') { + abs = path.join(self.root, f) + } else if (isAbsolute(f) || f === '') { + abs = f + } else if (self.changedCwd) { + abs = path.resolve(self.cwd, f) + } else { + abs = path.resolve(f) + } + return abs +} + + +// Return true, if pattern ends with globstar '**', for the accompanying parent directory. +// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents +function isIgnored (self, path) { + if (!self.ignore.length) + return false + + return self.ignore.some(function(item) { + return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) + }) +} + +function childrenIgnored (self, path) { + if (!self.ignore.length) + return false + + return self.ignore.some(function(item) { + return !!(item.gmatcher && item.gmatcher.match(path)) + }) +} diff --git a/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/glob.js b/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/glob.js new file mode 100644 index 0000000..022d2ac --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/glob.js @@ -0,0 +1,752 @@ +// Approach: +// +// 1. Get the minimatch set +// 2. For each pattern in the set, PROCESS(pattern, false) +// 3. Store matches per-set, then uniq them +// +// PROCESS(pattern, inGlobStar) +// Get the first [n] items from pattern that are all strings +// Join these together. This is PREFIX. +// If there is no more remaining, then stat(PREFIX) and +// add to matches if it succeeds. END. +// +// If inGlobStar and PREFIX is symlink and points to dir +// set ENTRIES = [] +// else readdir(PREFIX) as ENTRIES +// If fail, END +// +// with ENTRIES +// If pattern[n] is GLOBSTAR +// // handle the case where the globstar match is empty +// // by pruning it out, and testing the resulting pattern +// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) +// // handle other cases. +// for ENTRY in ENTRIES (not dotfiles) +// // attach globstar + tail onto the entry +// // Mark that this entry is a globstar match +// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) +// +// else // not globstar +// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) +// Test ENTRY against pattern[n] +// If fails, continue +// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) +// +// Caveat: +// Cache all stats and readdirs results to minimize syscall. Since all +// we ever care about is existence and directory-ness, we can just keep +// `true` for files, and [children,...] for directories, or `false` for +// things that don't exist. + +module.exports = glob + +var fs = require('fs') +var minimatch = require('minimatch') +var Minimatch = minimatch.Minimatch +var inherits = require('inherits') +var EE = require('events').EventEmitter +var path = require('path') +var assert = require('assert') +var isAbsolute = require('path-is-absolute') +var globSync = require('./sync.js') +var common = require('./common.js') +var alphasort = common.alphasort +var alphasorti = common.alphasorti +var setopts = common.setopts +var ownProp = common.ownProp +var inflight = require('inflight') +var util = require('util') +var childrenIgnored = common.childrenIgnored +var isIgnored = common.isIgnored + +var once = require('once') + +function glob (pattern, options, cb) { + if (typeof options === 'function') cb = options, options = {} + if (!options) options = {} + + if (options.sync) { + if (cb) + throw new TypeError('callback provided to sync glob') + return globSync(pattern, options) + } + + return new Glob(pattern, options, cb) +} + +glob.sync = globSync +var GlobSync = glob.GlobSync = globSync.GlobSync + +// old api surface +glob.glob = glob + +glob.hasMagic = function (pattern, options_) { + var options = util._extend({}, options_) + options.noprocess = true + + var g = new Glob(pattern, options) + var set = g.minimatch.set + if (set.length > 1) + return true + + for (var j = 0; j < set[0].length; j++) { + if (typeof set[0][j] !== 'string') + return true + } + + return false +} + +glob.Glob = Glob +inherits(Glob, EE) +function Glob (pattern, options, cb) { + if (typeof options === 'function') { + cb = options + options = null + } + + if (options && options.sync) { + if (cb) + throw new TypeError('callback provided to sync glob') + return new GlobSync(pattern, options) + } + + if (!(this instanceof Glob)) + return new Glob(pattern, options, cb) + + setopts(this, pattern, options) + this._didRealPath = false + + // process each pattern in the minimatch set + var n = this.minimatch.set.length + + // The matches are stored as {: true,...} so that + // duplicates are automagically pruned. + // Later, we do an Object.keys() on these. + // Keep them as a list so we can fill in when nonull is set. + this.matches = new Array(n) + + if (typeof cb === 'function') { + cb = once(cb) + this.on('error', cb) + this.on('end', function (matches) { + cb(null, matches) + }) + } + + var self = this + var n = this.minimatch.set.length + this._processing = 0 + this.matches = new Array(n) + + this._emitQueue = [] + this._processQueue = [] + this.paused = false + + if (this.noprocess) + return this + + if (n === 0) + return done() + + for (var i = 0; i < n; i ++) { + this._process(this.minimatch.set[i], i, false, done) + } + + function done () { + --self._processing + if (self._processing <= 0) + self._finish() + } +} + +Glob.prototype._finish = function () { + assert(this instanceof Glob) + if (this.aborted) + return + + if (this.realpath && !this._didRealpath) + return this._realpath() + + common.finish(this) + this.emit('end', this.found) +} + +Glob.prototype._realpath = function () { + if (this._didRealpath) + return + + this._didRealpath = true + + var n = this.matches.length + if (n === 0) + return this._finish() + + var self = this + for (var i = 0; i < this.matches.length; i++) + this._realpathSet(i, next) + + function next () { + if (--n === 0) + self._finish() + } +} + +Glob.prototype._realpathSet = function (index, cb) { + var matchset = this.matches[index] + if (!matchset) + return cb() + + var found = Object.keys(matchset) + var self = this + var n = found.length + + if (n === 0) + return cb() + + var set = this.matches[index] = Object.create(null) + found.forEach(function (p, i) { + // If there's a problem with the stat, then it means that + // one or more of the links in the realpath couldn't be + // resolved. just return the abs value in that case. + p = self._makeAbs(p) + fs.realpath(p, self.realpathCache, function (er, real) { + if (!er) + set[real] = true + else if (er.syscall === 'stat') + set[p] = true + else + self.emit('error', er) // srsly wtf right here + + if (--n === 0) { + self.matches[index] = set + cb() + } + }) + }) +} + +Glob.prototype._mark = function (p) { + return common.mark(this, p) +} + +Glob.prototype._makeAbs = function (f) { + return common.makeAbs(this, f) +} + +Glob.prototype.abort = function () { + this.aborted = true + this.emit('abort') +} + +Glob.prototype.pause = function () { + if (!this.paused) { + this.paused = true + this.emit('pause') + } +} + +Glob.prototype.resume = function () { + if (this.paused) { + this.emit('resume') + this.paused = false + if (this._emitQueue.length) { + var eq = this._emitQueue.slice(0) + this._emitQueue.length = 0 + for (var i = 0; i < eq.length; i ++) { + var e = eq[i] + this._emitMatch(e[0], e[1]) + } + } + if (this._processQueue.length) { + var pq = this._processQueue.slice(0) + this._processQueue.length = 0 + for (var i = 0; i < pq.length; i ++) { + var p = pq[i] + this._processing-- + this._process(p[0], p[1], p[2], p[3]) + } + } + } +} + +Glob.prototype._process = function (pattern, index, inGlobStar, cb) { + assert(this instanceof Glob) + assert(typeof cb === 'function') + + if (this.aborted) + return + + this._processing++ + if (this.paused) { + this._processQueue.push([pattern, index, inGlobStar, cb]) + return + } + + //console.error('PROCESS %d', this._processing, pattern) + + // Get the first [n] parts of pattern that are all strings. + var n = 0 + while (typeof pattern[n] === 'string') { + n ++ + } + // now n is the index of the first one that is *not* a string. + + // see if there's anything else + var prefix + switch (n) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join('/'), index, cb) + return + + case 0: + // pattern *starts* with some non-trivial item. + // going to readdir(cwd), but not include the prefix in matches. + prefix = null + break + + default: + // pattern has some string bits in the front. + // whatever it starts with, whether that's 'absolute' like /foo/bar, + // or 'relative' like '../baz' + prefix = pattern.slice(0, n).join('/') + break + } + + var remain = pattern.slice(n) + + // get the list of entries. + var read + if (prefix === null) + read = '.' + else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + if (!prefix || !isAbsolute(prefix)) + prefix = '/' + prefix + read = prefix + } else + read = prefix + + var abs = this._makeAbs(read) + + //if ignored, skip _processing + if (childrenIgnored(this, read)) + return cb() + + var isGlobStar = remain[0] === minimatch.GLOBSTAR + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) +} + +Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this + this._readdir(abs, inGlobStar, function (er, entries) { + return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) + }) +} + +Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { + + // if the abs isn't a dir, then nothing can match! + if (!entries) + return cb() + + // It will only match dot entries if it starts with a dot, or if + // dot is set. Stuff like @(.foo|.bar) isn't allowed. + var pn = remain[0] + var negate = !!this.minimatch.negate + var rawGlob = pn._glob + var dotOk = this.dot || rawGlob.charAt(0) === '.' + + var matchedEntries = [] + for (var i = 0; i < entries.length; i++) { + var e = entries[i] + if (e.charAt(0) !== '.' || dotOk) { + var m + if (negate && !prefix) { + m = !e.match(pn) + } else { + m = e.match(pn) + } + if (m) + matchedEntries.push(e) + } + } + + //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) + + var len = matchedEntries.length + // If there are no matched entries, then nothing matches. + if (len === 0) + return cb() + + // if this is the last remaining pattern bit, then no need for + // an additional stat *unless* the user has specified mark or + // stat explicitly. We know they exist, since readdir returned + // them. + + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + if (prefix) { + if (prefix !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + + if (e.charAt(0) === '/' && !this.nomount) { + e = path.join(this.root, e) + } + this._emitMatch(index, e) + } + // This was the last one, and no stats were needed + return cb() + } + + // now test all matched entries as stand-ins for that part + // of the pattern. + remain.shift() + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + var newPattern + if (prefix) { + if (prefix !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + this._process([e].concat(remain), index, inGlobStar, cb) + } + cb() +} + +Glob.prototype._emitMatch = function (index, e) { + if (this.aborted) + return + + if (this.matches[index][e]) + return + + if (isIgnored(this, e)) + return + + if (this.paused) { + this._emitQueue.push([index, e]) + return + } + + var abs = this._makeAbs(e) + + if (this.nodir) { + var c = this.cache[abs] + if (c === 'DIR' || Array.isArray(c)) + return + } + + if (this.mark) + e = this._mark(e) + + this.matches[index][e] = true + + var st = this.statCache[abs] + if (st) + this.emit('stat', e, st) + + this.emit('match', e) +} + +Glob.prototype._readdirInGlobStar = function (abs, cb) { + if (this.aborted) + return + + // follow all symlinked directories forever + // just proceed as if this is a non-globstar situation + if (this.follow) + return this._readdir(abs, false, cb) + + var lstatkey = 'lstat\0' + abs + var self = this + var lstatcb = inflight(lstatkey, lstatcb_) + + if (lstatcb) + fs.lstat(abs, lstatcb) + + function lstatcb_ (er, lstat) { + if (er) + return cb() + + var isSym = lstat.isSymbolicLink() + self.symlinks[abs] = isSym + + // If it's not a symlink or a dir, then it's definitely a regular file. + // don't bother doing a readdir in that case. + if (!isSym && !lstat.isDirectory()) { + self.cache[abs] = 'FILE' + cb() + } else + self._readdir(abs, false, cb) + } +} + +Glob.prototype._readdir = function (abs, inGlobStar, cb) { + if (this.aborted) + return + + cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) + if (!cb) + return + + //console.error('RD %j %j', +inGlobStar, abs) + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs, cb) + + if (ownProp(this.cache, abs)) { + var c = this.cache[abs] + if (!c || c === 'FILE') + return cb() + + if (Array.isArray(c)) + return cb(null, c) + } + + var self = this + fs.readdir(abs, readdirCb(this, abs, cb)) +} + +function readdirCb (self, abs, cb) { + return function (er, entries) { + if (er) + self._readdirError(abs, er, cb) + else + self._readdirEntries(abs, entries, cb) + } +} + +Glob.prototype._readdirEntries = function (abs, entries, cb) { + if (this.aborted) + return + + // if we haven't asked to stat everything, then just + // assume that everything in there exists, so we can avoid + // having to stat it a second time. + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i ++) { + var e = entries[i] + if (abs === '/') + e = abs + e + else + e = abs + '/' + e + this.cache[e] = true + } + } + + this.cache[abs] = entries + return cb(null, entries) +} + +Glob.prototype._readdirError = function (f, er, cb) { + if (this.aborted) + return + + // handle errors, and cache the information + switch (er.code) { + case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 + case 'ENOTDIR': // totally normal. means it *does* exist. + this.cache[this._makeAbs(f)] = 'FILE' + break + + case 'ENOENT': // not terribly unusual + case 'ELOOP': + case 'ENAMETOOLONG': + case 'UNKNOWN': + this.cache[this._makeAbs(f)] = false + break + + default: // some unusual error. Treat as failure. + this.cache[this._makeAbs(f)] = false + if (this.strict) { + this.emit('error', er) + // If the error is handled, then we abort + // if not, we threw out of here + this.abort() + } + if (!this.silent) + console.error('glob error', er) + break + } + + return cb() +} + +Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this + this._readdir(abs, inGlobStar, function (er, entries) { + self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) + }) +} + + +Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { + //console.error('pgs2', prefix, remain[0], entries) + + // no entries means not a dir, so it can never have matches + // foo.txt/** doesn't match foo.txt + if (!entries) + return cb() + + // test without the globstar, and with every child both below + // and replacing the globstar. + var remainWithoutGlobStar = remain.slice(1) + var gspref = prefix ? [ prefix ] : [] + var noGlobStar = gspref.concat(remainWithoutGlobStar) + + // the noGlobStar pattern exits the inGlobStar state + this._process(noGlobStar, index, false, cb) + + var isSym = this.symlinks[abs] + var len = entries.length + + // If it's a symlink, and we're in a globstar, then stop + if (isSym && inGlobStar) + return cb() + + for (var i = 0; i < len; i++) { + var e = entries[i] + if (e.charAt(0) === '.' && !this.dot) + continue + + // these two cases enter the inGlobStar state + var instead = gspref.concat(entries[i], remainWithoutGlobStar) + this._process(instead, index, true, cb) + + var below = gspref.concat(entries[i], remain) + this._process(below, index, true, cb) + } + + cb() +} + +Glob.prototype._processSimple = function (prefix, index, cb) { + // XXX review this. Shouldn't it be doing the mounting etc + // before doing stat? kinda weird? + var self = this + this._stat(prefix, function (er, exists) { + self._processSimple2(prefix, index, er, exists, cb) + }) +} +Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { + + //console.error('ps2', prefix, exists) + + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + // If it doesn't exist, then just mark the lack of results + if (!exists) + return cb() + + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix) + if (prefix.charAt(0) === '/') { + prefix = path.join(this.root, prefix) + } else { + prefix = path.resolve(this.root, prefix) + if (trail) + prefix += '/' + } + } + + if (process.platform === 'win32') + prefix = prefix.replace(/\\/g, '/') + + // Mark this as a match + this._emitMatch(index, prefix) + cb() +} + +// Returns either 'DIR', 'FILE', or false +Glob.prototype._stat = function (f, cb) { + var abs = this._makeAbs(f) + var needDir = f.slice(-1) === '/' + + if (f.length > this.maxLength) + return cb() + + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs] + + if (Array.isArray(c)) + c = 'DIR' + + // It exists, but maybe not how we need it + if (!needDir || c === 'DIR') + return cb(null, c) + + if (needDir && c === 'FILE') + return cb() + + // otherwise we have to stat, because maybe c=true + // if we know it exists, but not what it is. + } + + var exists + var stat = this.statCache[abs] + if (stat !== undefined) { + if (stat === false) + return cb(null, stat) + else { + var type = stat.isDirectory() ? 'DIR' : 'FILE' + if (needDir && type === 'FILE') + return cb() + else + return cb(null, type, stat) + } + } + + var self = this + var statcb = inflight('stat\0' + abs, lstatcb_) + if (statcb) + fs.lstat(abs, statcb) + + function lstatcb_ (er, lstat) { + if (lstat && lstat.isSymbolicLink()) { + // If it's a symlink, then treat it as the target, unless + // the target does not exist, then treat it as a file. + return fs.stat(abs, function (er, stat) { + if (er) + self._stat2(f, abs, null, lstat, cb) + else + self._stat2(f, abs, er, stat, cb) + }) + } else { + self._stat2(f, abs, er, lstat, cb) + } + } +} + +Glob.prototype._stat2 = function (f, abs, er, stat, cb) { + if (er) { + this.statCache[abs] = false + return cb() + } + + var needDir = f.slice(-1) === '/' + this.statCache[abs] = stat + + if (abs.slice(-1) === '/' && !stat.isDirectory()) + return cb(null, false, stat) + + var c = stat.isDirectory() ? 'DIR' : 'FILE' + this.cache[abs] = this.cache[abs] || c + + if (needDir && c !== 'DIR') + return cb() + + return cb(null, c, stat) +} diff --git a/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/package.json b/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/package.json new file mode 100644 index 0000000..7dbe94a --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/package.json @@ -0,0 +1,97 @@ +{ + "_args": [ + [ + "glob@^5.0.14", + "C:\\temp\\forpg\\node_modules\\rimraf" + ] + ], + "_from": "glob@>=5.0.14 <6.0.0", + "_id": "glob@5.0.15", + "_inCache": true, + "_location": "/rimraf/glob", + "_nodeVersion": "4.0.0", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" + }, + "_npmVersion": "3.3.2", + "_phantomChildren": {}, + "_requested": { + "name": "glob", + "raw": "glob@^5.0.14", + "rawSpec": "^5.0.14", + "scope": null, + "spec": ">=5.0.14 <6.0.0", + "type": "range" + }, + "_requiredBy": [ + "/rimraf" + ], + "_resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "_shasum": "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1", + "_shrinkwrap": null, + "_spec": "glob@^5.0.14", + "_where": "C:\\temp\\forpg\\node_modules\\rimraf", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/node-glob/issues" + }, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "description": "a little globber", + "devDependencies": { + "mkdirp": "0", + "rimraf": "^2.2.8", + "tap": "^1.1.4", + "tick": "0.0.6" + }, + "directories": {}, + "dist": { + "shasum": "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1", + "tarball": "http://registry.npmjs.org/glob/-/glob-5.0.15.tgz" + }, + "engines": { + "node": "*" + }, + "files": [ + "common.js", + "glob.js", + "sync.js" + ], + "gitHead": "3a7e71d453dd80e75b196fd262dd23ed54beeceb", + "homepage": "https://github.com/isaacs/node-glob#readme", + "installable": true, + "license": "ISC", + "main": "glob.js", + "maintainers": [ + { + "name": "isaacs", + "email": "i@izs.me" + } + ], + "name": "glob", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-glob.git" + }, + "scripts": { + "bench": "bash benchmark.sh", + "benchclean": "node benchclean.js", + "prepublish": "npm run benchclean", + "prof": "bash prof.sh && cat profile.txt", + "profclean": "rm -f v8.log profile.txt", + "test": "tap test/*.js --cov", + "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js" + }, + "version": "5.0.15" +} diff --git a/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/sync.js b/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/sync.js new file mode 100644 index 0000000..09883d2 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/rimraf/node_modules/glob/sync.js @@ -0,0 +1,460 @@ +module.exports = globSync +globSync.GlobSync = GlobSync + +var fs = require('fs') +var minimatch = require('minimatch') +var Minimatch = minimatch.Minimatch +var Glob = require('./glob.js').Glob +var util = require('util') +var path = require('path') +var assert = require('assert') +var isAbsolute = require('path-is-absolute') +var common = require('./common.js') +var alphasort = common.alphasort +var alphasorti = common.alphasorti +var setopts = common.setopts +var ownProp = common.ownProp +var childrenIgnored = common.childrenIgnored + +function globSync (pattern, options) { + if (typeof options === 'function' || arguments.length === 3) + throw new TypeError('callback provided to sync glob\n'+ + 'See: https://github.com/isaacs/node-glob/issues/167') + + return new GlobSync(pattern, options).found +} + +function GlobSync (pattern, options) { + if (!pattern) + throw new Error('must provide pattern') + + if (typeof options === 'function' || arguments.length === 3) + throw new TypeError('callback provided to sync glob\n'+ + 'See: https://github.com/isaacs/node-glob/issues/167') + + if (!(this instanceof GlobSync)) + return new GlobSync(pattern, options) + + setopts(this, pattern, options) + + if (this.noprocess) + return this + + var n = this.minimatch.set.length + this.matches = new Array(n) + for (var i = 0; i < n; i ++) { + this._process(this.minimatch.set[i], i, false) + } + this._finish() +} + +GlobSync.prototype._finish = function () { + assert(this instanceof GlobSync) + if (this.realpath) { + var self = this + this.matches.forEach(function (matchset, index) { + var set = self.matches[index] = Object.create(null) + for (var p in matchset) { + try { + p = self._makeAbs(p) + var real = fs.realpathSync(p, self.realpathCache) + set[real] = true + } catch (er) { + if (er.syscall === 'stat') + set[self._makeAbs(p)] = true + else + throw er + } + } + }) + } + common.finish(this) +} + + +GlobSync.prototype._process = function (pattern, index, inGlobStar) { + assert(this instanceof GlobSync) + + // Get the first [n] parts of pattern that are all strings. + var n = 0 + while (typeof pattern[n] === 'string') { + n ++ + } + // now n is the index of the first one that is *not* a string. + + // See if there's anything else + var prefix + switch (n) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join('/'), index) + return + + case 0: + // pattern *starts* with some non-trivial item. + // going to readdir(cwd), but not include the prefix in matches. + prefix = null + break + + default: + // pattern has some string bits in the front. + // whatever it starts with, whether that's 'absolute' like /foo/bar, + // or 'relative' like '../baz' + prefix = pattern.slice(0, n).join('/') + break + } + + var remain = pattern.slice(n) + + // get the list of entries. + var read + if (prefix === null) + read = '.' + else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + if (!prefix || !isAbsolute(prefix)) + prefix = '/' + prefix + read = prefix + } else + read = prefix + + var abs = this._makeAbs(read) + + //if ignored, skip processing + if (childrenIgnored(this, read)) + return + + var isGlobStar = remain[0] === minimatch.GLOBSTAR + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar) +} + + +GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { + var entries = this._readdir(abs, inGlobStar) + + // if the abs isn't a dir, then nothing can match! + if (!entries) + return + + // It will only match dot entries if it starts with a dot, or if + // dot is set. Stuff like @(.foo|.bar) isn't allowed. + var pn = remain[0] + var negate = !!this.minimatch.negate + var rawGlob = pn._glob + var dotOk = this.dot || rawGlob.charAt(0) === '.' + + var matchedEntries = [] + for (var i = 0; i < entries.length; i++) { + var e = entries[i] + if (e.charAt(0) !== '.' || dotOk) { + var m + if (negate && !prefix) { + m = !e.match(pn) + } else { + m = e.match(pn) + } + if (m) + matchedEntries.push(e) + } + } + + var len = matchedEntries.length + // If there are no matched entries, then nothing matches. + if (len === 0) + return + + // if this is the last remaining pattern bit, then no need for + // an additional stat *unless* the user has specified mark or + // stat explicitly. We know they exist, since readdir returned + // them. + + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + if (prefix) { + if (prefix.slice(-1) !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + + if (e.charAt(0) === '/' && !this.nomount) { + e = path.join(this.root, e) + } + this.matches[index][e] = true + } + // This was the last one, and no stats were needed + return + } + + // now test all matched entries as stand-ins for that part + // of the pattern. + remain.shift() + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + var newPattern + if (prefix) + newPattern = [prefix, e] + else + newPattern = [e] + this._process(newPattern.concat(remain), index, inGlobStar) + } +} + + +GlobSync.prototype._emitMatch = function (index, e) { + var abs = this._makeAbs(e) + if (this.mark) + e = this._mark(e) + + if (this.matches[index][e]) + return + + if (this.nodir) { + var c = this.cache[this._makeAbs(e)] + if (c === 'DIR' || Array.isArray(c)) + return + } + + this.matches[index][e] = true + if (this.stat) + this._stat(e) +} + + +GlobSync.prototype._readdirInGlobStar = function (abs) { + // follow all symlinked directories forever + // just proceed as if this is a non-globstar situation + if (this.follow) + return this._readdir(abs, false) + + var entries + var lstat + var stat + try { + lstat = fs.lstatSync(abs) + } catch (er) { + // lstat failed, doesn't exist + return null + } + + var isSym = lstat.isSymbolicLink() + this.symlinks[abs] = isSym + + // If it's not a symlink or a dir, then it's definitely a regular file. + // don't bother doing a readdir in that case. + if (!isSym && !lstat.isDirectory()) + this.cache[abs] = 'FILE' + else + entries = this._readdir(abs, false) + + return entries +} + +GlobSync.prototype._readdir = function (abs, inGlobStar) { + var entries + + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs) + + if (ownProp(this.cache, abs)) { + var c = this.cache[abs] + if (!c || c === 'FILE') + return null + + if (Array.isArray(c)) + return c + } + + try { + return this._readdirEntries(abs, fs.readdirSync(abs)) + } catch (er) { + this._readdirError(abs, er) + return null + } +} + +GlobSync.prototype._readdirEntries = function (abs, entries) { + // if we haven't asked to stat everything, then just + // assume that everything in there exists, so we can avoid + // having to stat it a second time. + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i ++) { + var e = entries[i] + if (abs === '/') + e = abs + e + else + e = abs + '/' + e + this.cache[e] = true + } + } + + this.cache[abs] = entries + + // mark and cache dir-ness + return entries +} + +GlobSync.prototype._readdirError = function (f, er) { + // handle errors, and cache the information + switch (er.code) { + case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 + case 'ENOTDIR': // totally normal. means it *does* exist. + this.cache[this._makeAbs(f)] = 'FILE' + break + + case 'ENOENT': // not terribly unusual + case 'ELOOP': + case 'ENAMETOOLONG': + case 'UNKNOWN': + this.cache[this._makeAbs(f)] = false + break + + default: // some unusual error. Treat as failure. + this.cache[this._makeAbs(f)] = false + if (this.strict) + throw er + if (!this.silent) + console.error('glob error', er) + break + } +} + +GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { + + var entries = this._readdir(abs, inGlobStar) + + // no entries means not a dir, so it can never have matches + // foo.txt/** doesn't match foo.txt + if (!entries) + return + + // test without the globstar, and with every child both below + // and replacing the globstar. + var remainWithoutGlobStar = remain.slice(1) + var gspref = prefix ? [ prefix ] : [] + var noGlobStar = gspref.concat(remainWithoutGlobStar) + + // the noGlobStar pattern exits the inGlobStar state + this._process(noGlobStar, index, false) + + var len = entries.length + var isSym = this.symlinks[abs] + + // If it's a symlink, and we're in a globstar, then stop + if (isSym && inGlobStar) + return + + for (var i = 0; i < len; i++) { + var e = entries[i] + if (e.charAt(0) === '.' && !this.dot) + continue + + // these two cases enter the inGlobStar state + var instead = gspref.concat(entries[i], remainWithoutGlobStar) + this._process(instead, index, true) + + var below = gspref.concat(entries[i], remain) + this._process(below, index, true) + } +} + +GlobSync.prototype._processSimple = function (prefix, index) { + // XXX review this. Shouldn't it be doing the mounting etc + // before doing stat? kinda weird? + var exists = this._stat(prefix) + + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + // If it doesn't exist, then just mark the lack of results + if (!exists) + return + + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix) + if (prefix.charAt(0) === '/') { + prefix = path.join(this.root, prefix) + } else { + prefix = path.resolve(this.root, prefix) + if (trail) + prefix += '/' + } + } + + if (process.platform === 'win32') + prefix = prefix.replace(/\\/g, '/') + + // Mark this as a match + this.matches[index][prefix] = true +} + +// Returns either 'DIR', 'FILE', or false +GlobSync.prototype._stat = function (f) { + var abs = this._makeAbs(f) + var needDir = f.slice(-1) === '/' + + if (f.length > this.maxLength) + return false + + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs] + + if (Array.isArray(c)) + c = 'DIR' + + // It exists, but maybe not how we need it + if (!needDir || c === 'DIR') + return c + + if (needDir && c === 'FILE') + return false + + // otherwise we have to stat, because maybe c=true + // if we know it exists, but not what it is. + } + + var exists + var stat = this.statCache[abs] + if (!stat) { + var lstat + try { + lstat = fs.lstatSync(abs) + } catch (er) { + return false + } + + if (lstat.isSymbolicLink()) { + try { + stat = fs.statSync(abs) + } catch (er) { + stat = lstat + } + } else { + stat = lstat + } + } + + this.statCache[abs] = stat + + var c = stat.isDirectory() ? 'DIR' : 'FILE' + this.cache[abs] = this.cache[abs] || c + + if (needDir && c !== 'DIR') + return false + + return c +} + +GlobSync.prototype._mark = function (p) { + return common.mark(this, p) +} + +GlobSync.prototype._makeAbs = function (f) { + return common.makeAbs(this, f) +} diff --git a/packages/NoGit.0.1.0/node_modules/rimraf/package.json b/packages/NoGit.0.1.0/node_modules/rimraf/package.json new file mode 100644 index 0000000..9587316 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/rimraf/package.json @@ -0,0 +1,92 @@ +{ + "_args": [ + [ + "rimraf@^2.2.8", + "C:\\temp\\forpg\\node_modules\\del" + ] + ], + "_from": "rimraf@>=2.2.8 <3.0.0", + "_id": "rimraf@2.4.3", + "_inCache": true, + "_location": "/rimraf", + "_nodeVersion": "2.2.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" + }, + "_npmVersion": "3.2.2", + "_phantomChildren": { + "inflight": "1.0.4", + "inherits": "2.0.1", + "minimatch": "2.0.10", + "once": "1.3.2", + "path-is-absolute": "1.0.0" + }, + "_requested": { + "name": "rimraf", + "raw": "rimraf@^2.2.8", + "rawSpec": "^2.2.8", + "scope": null, + "spec": ">=2.2.8 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "/del" + ], + "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz", + "_shasum": "e5b51c9437a4c582adb955e9f28cf8d945e272af", + "_shrinkwrap": null, + "_spec": "rimraf@^2.2.8", + "_where": "C:\\temp\\forpg\\node_modules\\del", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "bin": { + "rimraf": "./bin.js" + }, + "bugs": { + "url": "https://github.com/isaacs/rimraf/issues" + }, + "dependencies": { + "glob": "^5.0.14" + }, + "description": "A deep deletion module for node (like `rm -rf`)", + "devDependencies": { + "mkdirp": "^0.5.1", + "tap": "^1.3.1" + }, + "directories": {}, + "dist": { + "shasum": "e5b51c9437a4c582adb955e9f28cf8d945e272af", + "tarball": "http://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz" + }, + "files": [ + "LICENSE", + "README.md", + "bin.js", + "rimraf.js" + ], + "gitHead": "ec7050f8ca14c931b847414f18466e601ca7c02e", + "homepage": "https://github.com/isaacs/rimraf#readme", + "installable": true, + "license": "ISC", + "main": "rimraf.js", + "maintainers": [ + { + "name": "isaacs", + "email": "i@izs.me" + } + ], + "name": "rimraf", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/rimraf.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "2.4.3" +} diff --git a/packages/NoGit.0.1.0/node_modules/rimraf/rimraf.js b/packages/NoGit.0.1.0/node_modules/rimraf/rimraf.js new file mode 100644 index 0000000..7771b53 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/rimraf/rimraf.js @@ -0,0 +1,333 @@ +module.exports = rimraf +rimraf.sync = rimrafSync + +var assert = require("assert") +var path = require("path") +var fs = require("fs") +var glob = require("glob") + +var globOpts = { + nosort: true, + nocomment: true, + nonegate: true, + silent: true +} + +// for EMFILE handling +var timeout = 0 + +var isWindows = (process.platform === "win32") + +function defaults (options) { + var methods = [ + 'unlink', + 'chmod', + 'stat', + 'lstat', + 'rmdir', + 'readdir' + ] + methods.forEach(function(m) { + options[m] = options[m] || fs[m] + m = m + 'Sync' + options[m] = options[m] || fs[m] + }) + + options.maxBusyTries = options.maxBusyTries || 3 + options.emfileWait = options.emfileWait || 1000 + options.disableGlob = options.disableGlob || false +} + +function rimraf (p, options, cb) { + if (typeof options === 'function') { + cb = options + options = {} + } + + assert(p, 'rimraf: missing path') + assert.equal(typeof p, 'string', 'rimraf: path should be a string') + assert(options, 'rimraf: missing options') + assert.equal(typeof options, 'object', 'rimraf: options should be object') + assert.equal(typeof cb, 'function', 'rimraf: callback function required') + + defaults(options) + + var busyTries = 0 + var errState = null + var n = 0 + + if (options.disableGlob || !glob.hasMagic(p)) + return afterGlob(null, [p]) + + fs.lstat(p, function (er, stat) { + if (!er) + return afterGlob(null, [p]) + + glob(p, globOpts, afterGlob) + }) + + function next (er) { + errState = errState || er + if (--n === 0) + cb(errState) + } + + function afterGlob (er, results) { + if (er) + return cb(er) + + n = results.length + if (n === 0) + return cb() + + results.forEach(function (p) { + rimraf_(p, options, function CB (er) { + if (er) { + if (isWindows && (er.code === "EBUSY" || er.code === "ENOTEMPTY" || er.code === "EPERM") && + busyTries < options.maxBusyTries) { + busyTries ++ + var time = busyTries * 100 + // try again, with the same exact callback as this one. + return setTimeout(function () { + rimraf_(p, options, CB) + }, time) + } + + // this one won't happen if graceful-fs is used. + if (er.code === "EMFILE" && timeout < options.emfileWait) { + return setTimeout(function () { + rimraf_(p, options, CB) + }, timeout ++) + } + + // already gone + if (er.code === "ENOENT") er = null + } + + timeout = 0 + next(er) + }) + }) + } +} + +// Two possible strategies. +// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR +// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR +// +// Both result in an extra syscall when you guess wrong. However, there +// are likely far more normal files in the world than directories. This +// is based on the assumption that a the average number of files per +// directory is >= 1. +// +// If anyone ever complains about this, then I guess the strategy could +// be made configurable somehow. But until then, YAGNI. +function rimraf_ (p, options, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + // sunos lets the root user unlink directories, which is... weird. + // so we have to lstat here and make sure it's not a dir. + options.lstat(p, function (er, st) { + if (er && er.code === "ENOENT") + return cb(null) + + if (st && st.isDirectory()) + return rmdir(p, options, er, cb) + + options.unlink(p, function (er) { + if (er) { + if (er.code === "ENOENT") + return cb(null) + if (er.code === "EPERM") + return (isWindows) + ? fixWinEPERM(p, options, er, cb) + : rmdir(p, options, er, cb) + if (er.code === "EISDIR") + return rmdir(p, options, er, cb) + } + return cb(er) + }) + }) +} + +function fixWinEPERM (p, options, er, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + if (er) + assert(er instanceof Error) + + options.chmod(p, 666, function (er2) { + if (er2) + cb(er2.code === "ENOENT" ? null : er) + else + options.stat(p, function(er3, stats) { + if (er3) + cb(er3.code === "ENOENT" ? null : er) + else if (stats.isDirectory()) + rmdir(p, options, er, cb) + else + options.unlink(p, cb) + }) + }) +} + +function fixWinEPERMSync (p, options, er) { + assert(p) + assert(options) + if (er) + assert(er instanceof Error) + + try { + options.chmodSync(p, 666) + } catch (er2) { + if (er2.code === "ENOENT") + return + else + throw er + } + + try { + var stats = options.statSync(p) + } catch (er3) { + if (er3.code === "ENOENT") + return + else + throw er + } + + if (stats.isDirectory()) + rmdirSync(p, options, er) + else + options.unlinkSync(p) +} + +function rmdir (p, options, originalEr, cb) { + assert(p) + assert(options) + if (originalEr) + assert(originalEr instanceof Error) + assert(typeof cb === 'function') + + // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS) + // if we guessed wrong, and it's not a directory, then + // raise the original error. + options.rmdir(p, function (er) { + if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")) + rmkids(p, options, cb) + else if (er && er.code === "ENOTDIR") + cb(originalEr) + else + cb(er) + }) +} + +function rmkids(p, options, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + options.readdir(p, function (er, files) { + if (er) + return cb(er) + var n = files.length + if (n === 0) + return options.rmdir(p, cb) + var errState + files.forEach(function (f) { + rimraf(path.join(p, f), options, function (er) { + if (errState) + return + if (er) + return cb(errState = er) + if (--n === 0) + options.rmdir(p, cb) + }) + }) + }) +} + +// this looks simpler, and is strictly *faster*, but will +// tie up the JavaScript thread and fail on excessively +// deep directory trees. +function rimrafSync (p, options) { + options = options || {} + defaults(options) + + assert(p, 'rimraf: missing path') + assert.equal(typeof p, 'string', 'rimraf: path should be a string') + assert(options, 'rimraf: missing options') + assert.equal(typeof options, 'object', 'rimraf: options should be object') + + var results + + if (options.disableGlob || !glob.hasMagic(p)) { + results = [p] + } else { + try { + fs.lstatSync(p) + results = [p] + } catch (er) { + results = glob.sync(p, globOpts) + } + } + + if (!results.length) + return + + for (var i = 0; i < results.length; i++) { + var p = results[i] + + try { + var st = options.lstatSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + } + + try { + // sunos lets the root user unlink directories, which is... weird. + if (st && st.isDirectory()) + rmdirSync(p, options, null) + else + options.unlinkSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + if (er.code === "EPERM") + return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er) + if (er.code !== "EISDIR") + throw er + rmdirSync(p, options, er) + } + } +} + +function rmdirSync (p, options, originalEr) { + assert(p) + assert(options) + if (originalEr) + assert(originalEr instanceof Error) + + try { + options.rmdirSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + if (er.code === "ENOTDIR") + throw originalEr + if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM") + rmkidsSync(p, options) + } +} + +function rmkidsSync (p, options) { + assert(p) + assert(options) + options.readdirSync(p).forEach(function (f) { + rimrafSync(path.join(p, f), options) + }) + options.rmdirSync(p, options) +} diff --git a/packages/NoGit.0.1.0/node_modules/set-immediate-shim/index.js b/packages/NoGit.0.1.0/node_modules/set-immediate-shim/index.js new file mode 100644 index 0000000..e690485 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/set-immediate-shim/index.js @@ -0,0 +1,7 @@ +'use strict'; +module.exports = typeof setImmediate === 'function' ? setImmediate : + function setImmediate() { + var args = [].slice.apply(arguments); + args.splice(1, 0, 0); + setTimeout.apply(null, args); + }; diff --git a/packages/NoGit.0.1.0/node_modules/set-immediate-shim/package.json b/packages/NoGit.0.1.0/node_modules/set-immediate-shim/package.json new file mode 100644 index 0000000..c2b80c0 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/set-immediate-shim/package.json @@ -0,0 +1,88 @@ +{ + "_args": [ + [ + "set-immediate-shim@^1.0.0", + "C:\\temp\\forpg\\node_modules\\each-async" + ] + ], + "_from": "set-immediate-shim@>=1.0.0 <2.0.0", + "_id": "set-immediate-shim@1.0.1", + "_inCache": true, + "_location": "/set-immediate-shim", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" + }, + "_npmVersion": "1.4.28", + "_phantomChildren": {}, + "_requested": { + "name": "set-immediate-shim", + "raw": "set-immediate-shim@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/each-async" + ], + "_resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "_shasum": "4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61", + "_shrinkwrap": null, + "_spec": "set-immediate-shim@^1.0.0", + "_where": "C:\\temp\\forpg\\node_modules\\each-async", + "author": { + "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/set-immediate-shim/issues" + }, + "dependencies": {}, + "description": "Simple setImmediate shim", + "devDependencies": { + "ava": "0.0.4", + "require-uncached": "^1.0.2" + }, + "directories": {}, + "dist": { + "shasum": "4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61", + "tarball": "http://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "gitHead": "4c50df7ade5a368e106fee82351ee0a378c990f7", + "homepage": "https://github.com/sindresorhus/set-immediate-shim", + "installable": true, + "keywords": [ + "immediate", + "polyfill", + "ponyfill", + "setImmediate", + "setTimeout", + "shim", + "timeout" + ], + "license": "MIT", + "maintainers": [ + { + "name": "sindresorhus", + "email": "sindresorhus@gmail.com" + } + ], + "name": "set-immediate-shim", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/set-immediate-shim" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.1" +} diff --git a/packages/NoGit.0.1.0/node_modules/set-immediate-shim/readme.md b/packages/NoGit.0.1.0/node_modules/set-immediate-shim/readme.md new file mode 100644 index 0000000..4ec864f --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/set-immediate-shim/readme.md @@ -0,0 +1,31 @@ +# set-immediate-shim [![Build Status](https://travis-ci.org/sindresorhus/set-immediate-shim.svg?branch=master)](https://travis-ci.org/sindresorhus/set-immediate-shim) + +> Simple [`setImmediate`](https://developer.mozilla.org/en-US/docs/Web/API/Window.setImmediate) shim + + +## Install + +``` +$ npm install --save set-immediate-shim +``` + + +## Usage + +```js +var setImmediateShim = require('set-immediate-shim'); + +setImmediateShim(function () { + console.log('2'); +}); + +console.log('1'); + +//=> 1 +//=> 2 +``` + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/packages/NoGit.0.1.0/node_modules/string_decoder/.npmignore b/packages/NoGit.0.1.0/node_modules/string_decoder/.npmignore new file mode 100644 index 0000000..206320c --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/string_decoder/.npmignore @@ -0,0 +1,2 @@ +build +test diff --git a/packages/NoGit.0.1.0/node_modules/string_decoder/LICENSE b/packages/NoGit.0.1.0/node_modules/string_decoder/LICENSE new file mode 100644 index 0000000..6de584a --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/string_decoder/LICENSE @@ -0,0 +1,20 @@ +Copyright Joyent, Inc. and other Node contributors. + +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/NoGit.0.1.0/node_modules/string_decoder/README.md b/packages/NoGit.0.1.0/node_modules/string_decoder/README.md new file mode 100644 index 0000000..4d2aa00 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/string_decoder/README.md @@ -0,0 +1,7 @@ +**string_decoder.js** (`require('string_decoder')`) from Node.js core + +Copyright Joyent, Inc. and other Node contributors. See LICENCE file for details. + +Version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.** + +The *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version. \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/string_decoder/index.js b/packages/NoGit.0.1.0/node_modules/string_decoder/index.js new file mode 100644 index 0000000..b00e54f --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/string_decoder/index.js @@ -0,0 +1,221 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + +var Buffer = require('buffer').Buffer; + +var isBufferEncoding = Buffer.isEncoding + || function(encoding) { + switch (encoding && encoding.toLowerCase()) { + case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true; + default: return false; + } + } + + +function assertEncoding(encoding) { + if (encoding && !isBufferEncoding(encoding)) { + throw new Error('Unknown encoding: ' + encoding); + } +} + +// StringDecoder provides an interface for efficiently splitting a series of +// buffers into a series of JS strings without breaking apart multi-byte +// characters. CESU-8 is handled as part of the UTF-8 encoding. +// +// @TODO Handling all encodings inside a single object makes it very difficult +// to reason about this code, so it should be split up in the future. +// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code +// points as used by CESU-8. +var StringDecoder = exports.StringDecoder = function(encoding) { + this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); + assertEncoding(encoding); + switch (this.encoding) { + case 'utf8': + // CESU-8 represents each of Surrogate Pair by 3-bytes + this.surrogateSize = 3; + break; + case 'ucs2': + case 'utf16le': + // UTF-16 represents each of Surrogate Pair by 2-bytes + this.surrogateSize = 2; + this.detectIncompleteChar = utf16DetectIncompleteChar; + break; + case 'base64': + // Base-64 stores 3 bytes in 4 chars, and pads the remainder. + this.surrogateSize = 3; + this.detectIncompleteChar = base64DetectIncompleteChar; + break; + default: + this.write = passThroughWrite; + return; + } + + // Enough space to store all bytes of a single character. UTF-8 needs 4 + // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). + this.charBuffer = new Buffer(6); + // Number of bytes received for the current incomplete multi-byte character. + this.charReceived = 0; + // Number of bytes expected for the current incomplete multi-byte character. + this.charLength = 0; +}; + + +// write decodes the given buffer and returns it as JS string that is +// guaranteed to not contain any partial multi-byte characters. Any partial +// character found at the end of the buffer is buffered up, and will be +// returned when calling write again with the remaining bytes. +// +// Note: Converting a Buffer containing an orphan surrogate to a String +// currently works, but converting a String to a Buffer (via `new Buffer`, or +// Buffer#write) will replace incomplete surrogates with the unicode +// replacement character. See https://codereview.chromium.org/121173009/ . +StringDecoder.prototype.write = function(buffer) { + var charStr = ''; + // if our last write ended with an incomplete multibyte character + while (this.charLength) { + // determine how many remaining bytes this buffer has to offer for this char + var available = (buffer.length >= this.charLength - this.charReceived) ? + this.charLength - this.charReceived : + buffer.length; + + // add the new bytes to the char buffer + buffer.copy(this.charBuffer, this.charReceived, 0, available); + this.charReceived += available; + + if (this.charReceived < this.charLength) { + // still not enough chars in this buffer? wait for more ... + return ''; + } + + // remove bytes belonging to the current character from the buffer + buffer = buffer.slice(available, buffer.length); + + // get the character that was split + charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); + + // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character + var charCode = charStr.charCodeAt(charStr.length - 1); + if (charCode >= 0xD800 && charCode <= 0xDBFF) { + this.charLength += this.surrogateSize; + charStr = ''; + continue; + } + this.charReceived = this.charLength = 0; + + // if there are no more bytes in this buffer, just emit our char + if (buffer.length === 0) { + return charStr; + } + break; + } + + // determine and set charLength / charReceived + this.detectIncompleteChar(buffer); + + var end = buffer.length; + if (this.charLength) { + // buffer the incomplete character bytes we got + buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); + end -= this.charReceived; + } + + charStr += buffer.toString(this.encoding, 0, end); + + var end = charStr.length - 1; + var charCode = charStr.charCodeAt(end); + // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character + if (charCode >= 0xD800 && charCode <= 0xDBFF) { + var size = this.surrogateSize; + this.charLength += size; + this.charReceived += size; + this.charBuffer.copy(this.charBuffer, size, 0, size); + buffer.copy(this.charBuffer, 0, 0, size); + return charStr.substring(0, end); + } + + // or just emit the charStr + return charStr; +}; + +// detectIncompleteChar determines if there is an incomplete UTF-8 character at +// the end of the given buffer. If so, it sets this.charLength to the byte +// length that character, and sets this.charReceived to the number of bytes +// that are available for this character. +StringDecoder.prototype.detectIncompleteChar = function(buffer) { + // determine how many bytes we have to check at the end of this buffer + var i = (buffer.length >= 3) ? 3 : buffer.length; + + // Figure out if one of the last i bytes of our buffer announces an + // incomplete char. + for (; i > 0; i--) { + var c = buffer[buffer.length - i]; + + // See http://en.wikipedia.org/wiki/UTF-8#Description + + // 110XXXXX + if (i == 1 && c >> 5 == 0x06) { + this.charLength = 2; + break; + } + + // 1110XXXX + if (i <= 2 && c >> 4 == 0x0E) { + this.charLength = 3; + break; + } + + // 11110XXX + if (i <= 3 && c >> 3 == 0x1E) { + this.charLength = 4; + break; + } + } + this.charReceived = i; +}; + +StringDecoder.prototype.end = function(buffer) { + var res = ''; + if (buffer && buffer.length) + res = this.write(buffer); + + if (this.charReceived) { + var cr = this.charReceived; + var buf = this.charBuffer; + var enc = this.encoding; + res += buf.slice(0, cr).toString(enc); + } + + return res; +}; + +function passThroughWrite(buffer) { + return buffer.toString(this.encoding); +} + +function utf16DetectIncompleteChar(buffer) { + this.charReceived = buffer.length % 2; + this.charLength = this.charReceived ? 2 : 0; +} + +function base64DetectIncompleteChar(buffer) { + this.charReceived = buffer.length % 3; + this.charLength = this.charReceived ? 3 : 0; +} diff --git a/packages/NoGit.0.1.0/node_modules/string_decoder/package.json b/packages/NoGit.0.1.0/node_modules/string_decoder/package.json new file mode 100644 index 0000000..7ab29a0 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/string_decoder/package.json @@ -0,0 +1,78 @@ +{ + "_args": [ + [ + "string_decoder@~0.10.x", + "C:\\temp\\forpg\\node_modules\\readable-stream" + ] + ], + "_from": "string_decoder@>=0.10.0 <0.11.0", + "_id": "string_decoder@0.10.31", + "_inCache": true, + "_location": "/string_decoder", + "_npmUser": { + "email": "rod@vagg.org", + "name": "rvagg" + }, + "_npmVersion": "1.4.23", + "_phantomChildren": {}, + "_requested": { + "name": "string_decoder", + "raw": "string_decoder@~0.10.x", + "rawSpec": "~0.10.x", + "scope": null, + "spec": ">=0.10.0 <0.11.0", + "type": "range" + }, + "_requiredBy": [ + "/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "_shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", + "_shrinkwrap": null, + "_spec": "string_decoder@~0.10.x", + "_where": "C:\\temp\\forpg\\node_modules\\readable-stream", + "bugs": { + "url": "https://github.com/rvagg/string_decoder/issues" + }, + "dependencies": {}, + "description": "The string_decoder module from Node core", + "devDependencies": { + "tap": "~0.4.8" + }, + "directories": {}, + "dist": { + "shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", + "tarball": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "gitHead": "d46d4fd87cf1d06e031c23f1ba170ca7d4ade9a0", + "homepage": "https://github.com/rvagg/string_decoder", + "installable": true, + "keywords": [ + "browser", + "browserify", + "decoder", + "string" + ], + "license": "MIT", + "main": "index.js", + "maintainers": [ + { + "name": "substack", + "email": "mail@substack.net" + }, + { + "name": "rvagg", + "email": "rod@vagg.org" + } + ], + "name": "string_decoder", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/rvagg/string_decoder.git" + }, + "scripts": { + "test": "tap test/simple/*.js" + }, + "version": "0.10.31" +} diff --git a/packages/NoGit.0.1.0/node_modules/tar-stream/LICENSE b/packages/NoGit.0.1.0/node_modules/tar-stream/LICENSE new file mode 100644 index 0000000..757562e --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tar-stream/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Mathias Buus + +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. \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/tar-stream/README.md b/packages/NoGit.0.1.0/node_modules/tar-stream/README.md new file mode 100644 index 0000000..0bfd67a --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tar-stream/README.md @@ -0,0 +1,135 @@ +# tar-stream + +tar-stream is a streaming tar parser and generator and nothing else. It is streams2 and operates purely using streams which means you can easily extract/parse tarballs without ever hitting the file system. + +Note that you still need to gunzip your data if you have a `.tar.gz`. We recommend using [gunzip-maybe](https://github.com/mafintosh/gunzip-maybe) in conjunction with this. + +``` +npm install tar-stream +``` + +[![build status](https://secure.travis-ci.org/mafintosh/tar-stream.png)](http://travis-ci.org/mafintosh/tar-stream) + +## Usage + +tar-stream exposes two streams, [pack](https://github.com/mafintosh/tar-stream#packing) which creates tarballs and [extract](https://github.com/mafintosh/tar-stream#extracting) which extracts tarballs. To [modify an existing tarball](https://github.com/mafintosh/tar-stream#modifying-existing-tarballs) use both. + + +It implementes USTAR with additional support for pax extended headers. It should be compatible with all popular tar distributions out there (gnutar, bsdtar etc) + +## Related + +If you want to pack/unpack directories on the file system check out [tar-fs](https://github.com/mafintosh/tar-fs) which provides file system bindings to this module. + +## Packing + +To create a pack stream use `tar.pack()` and call `pack.entry(header, [callback])` to add tar entries. + +``` js +var tar = require('tar-stream') +var pack = tar.pack() // pack is a streams2 stream + +// add a file called my-test.txt with the content "Hello World!" +pack.entry({ name: 'my-test.txt' }, 'Hello World!') + +// add a file called my-stream-test.txt from a stream +var entry = pack.entry({ name: 'my-stream-test.txt', size: 11 }, function(err) { + // the stream was added + // no more entries + pack.finalize() +}) + +entry.write('hello') +entry.write(' ') +entry.write('world') +entry.end() + +// pipe the pack stream somewhere +pack.pipe(process.stdout) +``` + +## Extracting + +To extract a stream use `tar.extract()` and listen for `extract.on('entry', header, stream, callback)` + +``` js +var extract = tar.extract() + +extract.on('entry', function(header, stream, callback) { + // header is the tar header + // stream is the content body (might be an empty stream) + // call next when you are done with this entry + + stream.on('end', function() { + callback() // ready for next entry + }) + + stream.resume() // just auto drain the stream +}) + +extract.on('finish', function() { + // all entries read +}) + +pack.pipe(extract) +``` + +## Headers + +The header object using in `entry` should contain the following properties. +Most of these values can be found by stat'ing a file. + +``` js +{ + name: 'path/to/this/entry.txt', + size: 1314, // entry size. defaults to 0 + mode: 0644, // entry mode. defaults to to 0755 for dirs and 0644 otherwise + mtime: new Date(), // last modified date for entry. defaults to now. + type: 'file', // type of entry. defaults to file. can be: + // file | link | symlink | directory | block-device + // character-device | fifo | contigious-file + linkname: 'path', // linked file name + uid: 0, // uid of entry owner. defaults to 0 + gid: 0, // gid of entry owner. defaults to 0 + uname: 'maf', // uname of entry owner. defaults to null + gname: 'staff', // gname of entry owner. defaults to null + devmajor: 0, // device major version. defaults to 0 + devminor: 0 // device minor version. defaults to 0 +} +``` + +## Modifying existing tarballs + +Using tar-stream it is easy to rewrite paths / change modes etc in an existing tarball. + +``` js +var extract = tar.extract() +var pack = tar.pack() +var path = require('path') + +extract.on('entry', function(header, stream, callback) { + // let's prefix all names with 'tmp' + header.name = path.join('tmp', header.name) + // write the new entry to the pack stream + stream.pipe(pack.entry(header, callback)) +}) + +extract.on('finish', function() { + // all entries done - lets finalize it + pack.finalize() +}) + +// pipe the old tarball to the extractor +oldTarballStream.pipe(extract) + +// pipe the new tarball the another stream +pack.pipe(newTarballStream) +``` + +## Performance + +[See tar-fs for a performance comparison with node-tar](https://github.com/mafintosh/tar-fs/blob/master/README.md#performance) + +# License + +MIT diff --git a/packages/NoGit.0.1.0/node_modules/tar-stream/extract.js b/packages/NoGit.0.1.0/node_modules/tar-stream/extract.js new file mode 100644 index 0000000..d685bb3 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tar-stream/extract.js @@ -0,0 +1,245 @@ +var util = require('util') +var bl = require('bl') +var xtend = require('xtend') +var headers = require('./headers') + +var Writable = require('readable-stream').Writable +var PassThrough = require('readable-stream').PassThrough + +var noop = function() {} + +var overflow = function(size) { + size &= 511 + return size && 512 - size +} + +var emptyStream = function(self, offset) { + var s = new Source(self, offset) + s.end() + return s +} + +var mixinPax = function(header, pax) { + if (pax.path) header.name = pax.path + if (pax.linkpath) header.linkname = pax.linkpath + return header +} + +var Source = function(self, offset) { + this._parent = self + this.offset = offset + PassThrough.call(this) +} + +util.inherits(Source, PassThrough) + +Source.prototype.destroy = function(err) { + this._parent.destroy(err) +} + +var Extract = function(opts) { + if (!(this instanceof Extract)) return new Extract(opts) + Writable.call(this, opts) + + this._offset = 0 + this._buffer = bl() + this._missing = 0 + this._onparse = noop + this._header = null + this._stream = null + this._overflow = null + this._cb = null + this._locked = false + this._destroyed = false + this._pax = null + this._paxGlobal = null + this._gnuLongPath = null + this._gnuLongLinkPath = null + + var self = this + var b = self._buffer + + var oncontinue = function() { + self._continue() + } + + var onunlock = function(err) { + self._locked = false + if (err) return self.destroy(err) + if (!self._stream) oncontinue() + } + + var onstreamend = function() { + self._stream = null + var drain = overflow(self._header.size) + if (drain) self._parse(drain, ondrain) + else self._parse(512, onheader) + if (!self._locked) oncontinue() + } + + var ondrain = function() { + self._buffer.consume(overflow(self._header.size)) + self._parse(512, onheader) + oncontinue() + } + + var onpaxglobalheader = function() { + var size = self._header.size + self._paxGlobal = headers.decodePax(b.slice(0, size)) + b.consume(size) + onstreamend() + } + + var onpaxheader = function() { + var size = self._header.size + self._pax = headers.decodePax(b.slice(0, size)) + if (self._paxGlobal) self._pax = xtend(self._paxGlobal, self._pax) + b.consume(size) + onstreamend() + } + + var ongnulongpath = function() { + var size = self._header.size + this._gnuLongPath = headers.decodeLongPath(b.slice(0, size)) + b.consume(size) + onstreamend() + } + + var ongnulonglinkpath = function() { + var size = self._header.size + this._gnuLongLinkPath = headers.decodeLongPath(b.slice(0, size)) + b.consume(size) + onstreamend() + } + + var onheader = function() { + var offset = self._offset + var header + try { + header = self._header = headers.decode(b.slice(0, 512)) + } catch (err) { + self.emit('error', err) + } + b.consume(512) + + if (!header) { + self._parse(512, onheader) + oncontinue() + return + } + if (header.type === 'gnu-long-path') { + self._parse(header.size, ongnulongpath) + oncontinue() + return + } + if (header.type === 'gnu-long-link-path') { + self._parse(header.size, ongnulonglinkpath) + oncontinue() + return + } + if (header.type === 'pax-global-header') { + self._parse(header.size, onpaxglobalheader) + oncontinue() + return + } + if (header.type === 'pax-header') { + self._parse(header.size, onpaxheader) + oncontinue() + return + } + + if (self._gnuLongPath) { + header.name = self._gnuLongPath + self._gnuLongPath = null + } + + if (self._gnuLongLinkPath) { + header.linkname = self._gnuLongLinkPath + self._gnuLongLinkPath = null + } + + if (self._pax) { + self._header = header = mixinPax(header, self._pax) + self._pax = null + } + + self._locked = true + + if (!header.size) { + self._parse(512, onheader) + self.emit('entry', header, emptyStream(self, offset), onunlock) + return + } + + self._stream = new Source(self, offset) + + self.emit('entry', header, self._stream, onunlock) + self._parse(header.size, onstreamend) + oncontinue() + } + + this._parse(512, onheader) +} + +util.inherits(Extract, Writable) + +Extract.prototype.destroy = function(err) { + if (this._destroyed) return + this._destroyed = true + + if (err) this.emit('error', err) + this.emit('close') + if (this._stream) this._stream.emit('close') +} + +Extract.prototype._parse = function(size, onparse) { + if (this._destroyed) return + this._offset += size + this._missing = size + this._onparse = onparse +} + +Extract.prototype._continue = function(err) { + if (this._destroyed) return + var cb = this._cb + this._cb = noop + if (this._overflow) this._write(this._overflow, undefined, cb) + else cb() +} + +Extract.prototype._write = function(data, enc, cb) { + if (this._destroyed) return + + var s = this._stream + var b = this._buffer + var missing = this._missing + + // we do not reach end-of-chunk now. just forward it + + if (data.length < missing) { + this._missing -= data.length + this._overflow = null + if (s) return s.write(data, cb) + b.append(data) + return cb() + } + + // end-of-chunk. the parser should call cb. + + this._cb = cb + this._missing = 0 + + var overflow = null + if (data.length > missing) { + overflow = data.slice(missing) + data = data.slice(0, missing) + } + + if (s) s.end(data) + else b.append(data) + + this._overflow = overflow + this._onparse() +} + +module.exports = Extract diff --git a/packages/NoGit.0.1.0/node_modules/tar-stream/headers.js b/packages/NoGit.0.1.0/node_modules/tar-stream/headers.js new file mode 100644 index 0000000..19c3da3 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tar-stream/headers.js @@ -0,0 +1,232 @@ +var ZEROS = '0000000000000000000' +var ZERO_OFFSET = '0'.charCodeAt(0) +var USTAR = 'ustar\x0000' + +var clamp = function(index, len, defaultValue) { + if (typeof index !== 'number') return defaultValue + index = ~~index // Coerce to integer. + if (index >= len) return len + if (index >= 0) return index + index += len + if (index >= 0) return index + return 0 +} + +var toType = function(flag) { + switch (flag) { + case 0: + return 'file' + case 1: + return 'link' + case 2: + return 'symlink' + case 3: + return 'character-device' + case 4: + return 'block-device' + case 5: + return 'directory' + case 6: + return 'fifo' + case 7: + return 'contiguous-file' + case 72: + return 'pax-header' + case 55: + return 'pax-global-header' + case 27: + return 'gnu-long-link-path' + case 28: + case 30: + return 'gnu-long-path' + } + + return null +} + +var toTypeflag = function(flag) { + switch (flag) { + case 'file': + return 0 + case 'link': + return 1 + case 'symlink': + return 2 + case 'character-device': + return 3 + case 'block-device': + return 4 + case 'directory': + return 5 + case 'fifo': + return 6 + case 'contiguous-file': + return 7 + case 'pax-header': + return 72 + } + + return 0 +} + +var alloc = function(size) { + var buf = new Buffer(size) + buf.fill(0) + return buf +} + +var indexOf = function(block, num, offset, end) { + for (; offset < end; offset++) { + if (block[offset] === num) return offset + } + return end +} + +var cksum = function(block) { + var sum = 8 * 32 + for (var i = 0; i < 148; i++) sum += block[i] + for (var i = 156; i < 512; i++) sum += block[i] + return sum +} + +var encodeOct = function(val, n) { + val = val.toString(8) + return ZEROS.slice(0, n-val.length)+val+' ' +} + +var decodeOct = function(val, offset) { + // Older versions of tar can prefix with spaces + while (offset < val.length && val[offset] === 32) offset++ + var end = clamp(indexOf(val, 32, offset, val.length), val.length, val.length) + while (offset < end && val[offset] === 0) offset++ + if (end === offset) return 0 + return parseInt(val.slice(offset, end).toString(), 8) +} + +var decodeStr = function(val, offset, length) { + return val.slice(offset, indexOf(val, 0, offset, offset+length)).toString(); +} + +var addLength = function(str) { + var len = Buffer.byteLength(str) + var digits = Math.floor(Math.log(len) / Math.log(10)) + 1 + if (len + digits > Math.pow(10, digits)) digits++ + + return (len+digits)+str +} + +exports.decodeLongPath = function(buf) { + return decodeStr(buf, 0, buf.length) +} + +exports.encodePax = function(opts) { // TODO: encode more stuff in pax + var result = '' + if (opts.name) result += addLength(' path='+opts.name+'\n') + if (opts.linkname) result += addLength(' linkpath='+opts.linkname+'\n') + return new Buffer(result) +} + +exports.decodePax = function(buf) { + var result = {} + + while (buf.length) { + var i = 0 + while (i < buf.length && buf[i] !== 32) i++ + + var len = parseInt(buf.slice(0, i).toString()) + if (!len) return result + + var b = buf.slice(i+1, len-1).toString() + var keyIndex = b.indexOf('=') + if (keyIndex === -1) return result + result[b.slice(0, keyIndex)] = b.slice(keyIndex+1) + + buf = buf.slice(len) + } + + return result +} + +exports.encode = function(opts) { + var buf = alloc(512) + var name = opts.name + var prefix = '' + + if (opts.typeflag === 5 && name[name.length-1] !== '/') name += '/' + if (Buffer.byteLength(name) !== name.length) return null // utf-8 + + while (Buffer.byteLength(name) > 100) { + var i = name.indexOf('/') + if (i === -1) return null + prefix += prefix ? '/' + name.slice(0, i) : name.slice(0, i) + name = name.slice(i+1) + } + + if (Buffer.byteLength(name) > 100 || Buffer.byteLength(prefix) > 155) return null + if (opts.linkname && Buffer.byteLength(opts.linkname) > 100) return null + + buf.write(name) + buf.write(encodeOct(opts.mode & 07777, 6), 100) + buf.write(encodeOct(opts.uid, 6), 108) + buf.write(encodeOct(opts.gid, 6), 116) + buf.write(encodeOct(opts.size, 11), 124) + buf.write(encodeOct((opts.mtime.getTime() / 1000) | 0, 11), 136) + + buf[156] = ZERO_OFFSET + toTypeflag(opts.type) + + if (opts.linkname) buf.write(opts.linkname, 157) + + buf.write(USTAR, 257) + if (opts.uname) buf.write(opts.uname, 265) + if (opts.gname) buf.write(opts.gname, 297) + buf.write(encodeOct(opts.devmajor || 0, 6), 329) + buf.write(encodeOct(opts.devminor || 0, 6), 337) + + if (prefix) buf.write(prefix, 345) + + buf.write(encodeOct(cksum(buf), 6), 148) + + return buf +} + +exports.decode = function(buf) { + var typeflag = buf[156] === 0 ? 0 : buf[156] - ZERO_OFFSET + var type = toType(typeflag) + + var name = decodeStr(buf, 0, 100) + var mode = decodeOct(buf, 100) + var uid = decodeOct(buf, 108) + var gid = decodeOct(buf, 116) + var size = decodeOct(buf, 124) + var mtime = decodeOct(buf, 136) + var linkname = buf[157] === 0 ? null : decodeStr(buf, 157, 100) + var uname = decodeStr(buf, 265, 32) + var gname = decodeStr(buf, 297, 32) + var devmajor = decodeOct(buf, 329) + var devminor = decodeOct(buf, 337) + + if (buf[345]) name = decodeStr(buf, 345, 155)+'/'+name + + var c = cksum(buf) + + //checksum is still initial value if header was null. + if (c === 8*32) return null + + //valid checksum + if (c !== decodeOct(buf, 148)) throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?") + + return { + name: name, + mode: mode, + uid: uid, + gid: gid, + size: size, + mtime: new Date(1000 * mtime), + type: toType(typeflag), + linkname: linkname, + uname: uname, + gname: gname, + devmajor: devmajor, + devminor: devminor + } +} diff --git a/packages/NoGit.0.1.0/node_modules/tar-stream/index.js b/packages/NoGit.0.1.0/node_modules/tar-stream/index.js new file mode 100644 index 0000000..cf54304 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tar-stream/index.js @@ -0,0 +1,2 @@ +exports.extract = require('./extract') +exports.pack = require('./pack') \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/tar-stream/pack.js b/packages/NoGit.0.1.0/node_modules/tar-stream/pack.js new file mode 100644 index 0000000..eec3496 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tar-stream/pack.js @@ -0,0 +1,194 @@ +var util = require('util') +var eos = require('end-of-stream') +var headers = require('./headers') + +var Readable = require('readable-stream').Readable +var Writable = require('readable-stream').Writable +var PassThrough = require('readable-stream').PassThrough + +var END_OF_TAR = new Buffer(1024) +END_OF_TAR.fill(0) + +var noop = function() {} + +var overflow = function(self, size) { + size &= 511 + if (size) self.push(END_OF_TAR.slice(0, 512 - size)) +} + +var Sink = function(to) { + Writable.call(this) + this.written = 0 + this._to = to + this._destroyed = false +} + +util.inherits(Sink, Writable) + +Sink.prototype._write = function(data, enc, cb) { + this.written += data.length + if (this._to.push(data)) return cb() + this._to._drain = cb +} + +Sink.prototype.destroy = function() { + if (this._destroyed) return + this._destroyed = true + this.emit('close') +} + +var Void = function() { + Writable.call(this) + this._destroyed = false +} + +util.inherits(Void, Writable) + +Void.prototype._write = function(data, enc, cb) { + cb(new Error('No body allowed for this entry')) +} + +Void.prototype.destroy = function() { + if (this._destroyed) return + this._destroyed = true + this.emit('close') +} + +var Pack = function(opts) { + if (!(this instanceof Pack)) return new Pack(opts) + Readable.call(this, opts) + + this._drain = noop + this._finalized = false + this._finalizing = false + this._destroyed = false + this._stream = null +} + +util.inherits(Pack, Readable) + +Pack.prototype.entry = function(header, buffer, callback) { + if (this._stream) throw new Error('already piping an entry') + if (this._finalized || this._destroyed) return + + if (typeof buffer === 'function') { + callback = buffer + buffer = null + } + + if (!callback) callback = noop + + var self = this + + if (!header.size) header.size = 0 + if (!header.type) header.type = 'file' + if (!header.mode) header.mode = header.type === 'directory' ? 0755 : 0644 + if (!header.uid) header.uid = 0 + if (!header.gid) header.gid = 0 + if (!header.mtime) header.mtime = new Date() + + if (typeof buffer === 'string') buffer = new Buffer(buffer) + if (Buffer.isBuffer(buffer)) { + header.size = buffer.length + this._encode(header) + this.push(buffer) + overflow(self, header.size) + process.nextTick(callback) + return new Void() + } + if (header.type !== 'file' && header.type !== 'contigious-file') { + this._encode(header) + process.nextTick(callback) + return new Void() + } + + var sink = new Sink(this) + + this._encode(header) + this._stream = sink + + eos(sink, function(err) { + self._stream = null + + if (err) { // stream was closed + self.destroy() + return callback(err) + } + + if (sink.written !== header.size) { // corrupting tar + self.destroy() + return callback(new Error('size mismatch')) + } + + overflow(self, header.size) + if (self._finalizing) self.finalize() + callback() + }) + + return sink +} + +Pack.prototype.finalize = function() { + if (this._stream) { + this._finalizing = true + return + } + + if (this._finalized) return + this._finalized = true + this.push(END_OF_TAR) + this.push(null) +} + +Pack.prototype.destroy = function(err) { + if (this._destroyed) return + this._destroyed = true + + if (err) this.emit('error', err) + this.emit('close') + if (this._stream && this._stream.destroy) this._stream.destroy() +} + +Pack.prototype._encode = function(header) { + var buf = headers.encode(header) + if (buf) this.push(buf) + else this._encodePax(header) +} + +Pack.prototype._encodePax = function(header) { + var paxHeader = headers.encodePax({ + name: header.name, + linkname: header.linkname + }) + + var newHeader = { + name: 'PaxHeader', + mode: header.mode, + uid: header.uid, + gid: header.gid, + size: paxHeader.length, + mtime: header.mtime, + type: 'pax-header', + linkname: header.linkname && 'PaxHeader', + uname: header.uname, + gname: header.gname, + devmajor: header.devmajor, + devminor: header.devminor + } + + this.push(headers.encode(newHeader)) + this.push(paxHeader) + overflow(this, paxHeader.length) + + newHeader.size = header.size + newHeader.type = header.type + this.push(headers.encode(newHeader)) +} + +Pack.prototype._read = function(n) { + var drain = this._drain + this._drain = noop + drain() +} + +module.exports = Pack diff --git a/packages/NoGit.0.1.0/node_modules/tar-stream/package.json b/packages/NoGit.0.1.0/node_modules/tar-stream/package.json new file mode 100644 index 0000000..3883c45 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tar-stream/package.json @@ -0,0 +1,108 @@ +{ + "_args": [ + [ + "tar-stream@~1.1.0", + "C:\\temp\\forpg\\node_modules\\archiver" + ] + ], + "_from": "tar-stream@>=1.1.0 <1.2.0", + "_id": "tar-stream@1.1.5", + "_inCache": true, + "_location": "/tar-stream", + "_nodeVersion": "2.0.0", + "_npmUser": { + "email": "max@maxogden.com", + "name": "maxogden" + }, + "_npmVersion": "2.9.0", + "_phantomChildren": {}, + "_requested": { + "name": "tar-stream", + "raw": "tar-stream@~1.1.0", + "rawSpec": "~1.1.0", + "scope": null, + "spec": ">=1.1.0 <1.2.0", + "type": "range" + }, + "_requiredBy": [ + "/archiver" + ], + "_resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.1.5.tgz", + "_shasum": "be9218c130c20029e107b0f967fb23de0579d13c", + "_shrinkwrap": null, + "_spec": "tar-stream@~1.1.0", + "_where": "C:\\temp\\forpg\\node_modules\\archiver", + "author": { + "email": "mathiasbuus@gmail.com", + "name": "Mathias Buus" + }, + "bugs": { + "url": "https://github.com/mafintosh/tar-stream/issues" + }, + "dependencies": { + "bl": "^0.9.0", + "end-of-stream": "^1.0.0", + "readable-stream": "~1.0.33", + "xtend": "^4.0.0" + }, + "description": "tar-stream is a streaming tar parser and generator and nothing else. It is streams2 and operates purely using streams which means you can easily extract/parse tarballs without ever hitting the file system.", + "devDependencies": { + "concat-stream": "^1.4.6", + "tape": "^3.0.3" + }, + "directories": { + "test": "test" + }, + "dist": { + "shasum": "be9218c130c20029e107b0f967fb23de0579d13c", + "tarball": "http://registry.npmjs.org/tar-stream/-/tar-stream-1.1.5.tgz" + }, + "engines": { + "node": ">= 0.8.0" + }, + "files": [ + "*.js", + "LICENSE" + ], + "gitHead": "72e8736c83455192fdcc20c0252d9df9f83350df", + "homepage": "https://github.com/mafintosh/tar-stream", + "installable": true, + "keywords": [ + "extract", + "generate", + "generator", + "modify", + "pack", + "parse", + "parser", + "stream", + "stream2", + "streaming", + "streams", + "streams2", + "tar", + "tarball" + ], + "license": "MIT", + "main": "index.js", + "maintainers": [ + { + "name": "mafintosh", + "email": "mathiasbuus@gmail.com" + }, + { + "name": "maxogden", + "email": "max@maxogden.com" + } + ], + "name": "tar-stream", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/mafintosh/tar-stream.git" + }, + "scripts": { + "test": "tape test/*.js" + }, + "version": "1.1.5" +} diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/.npmignore b/packages/NoGit.0.1.0/node_modules/tunnel/.npmignore new file mode 100644 index 0000000..6684c76 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/.npmignore @@ -0,0 +1,2 @@ +/.idea +/node_modules diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/CHANGELOG.md b/packages/NoGit.0.1.0/node_modules/tunnel/CHANGELOG.md new file mode 100644 index 0000000..49607ee --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + + - 0.0.3 (2014/01/20) + - fixed package.json + + - 0.0.1 (2012/02/18) + - supported Node v0.6.x (0.6.11 or later). + + - 0.0.0 (2012/02/11) + - first release. diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/LICENSE b/packages/NoGit.0.1.0/node_modules/tunnel/LICENSE new file mode 100644 index 0000000..6a86974 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2012-2013 Koichi Kobayashi + +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/NoGit.0.1.0/node_modules/tunnel/README.md b/packages/NoGit.0.1.0/node_modules/tunnel/README.md new file mode 100644 index 0000000..63260e6 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/README.md @@ -0,0 +1,176 @@ +# node-tunnel - HTTP/HTTPS Agents for tunneling proxies + +## Example + +```javascript +var tunnel = require('tunnel'); + +var tunnelingAgent = tunnel.httpsOverHttp({ + proxy: { + host: 'localhost', + port: 3128 + } +}); + +var req = https.request({ + host: 'example.com', + port: 443, + agent: tunnelingAgent +}); +``` + +## Installation + + $ npm install tunnel + +## Usages + +### HTTP over HTTP tunneling + +```javascript +var tunnelingAgent = tunnel.httpOverHttp({ + maxSockets: poolSize, // Defaults to 5 + + proxy: { // Proxy settings + host: proxyHost, // Defaults to 'localhost' + port: proxyPort, // Defaults to 80 + localAddress: localAddress, // Local interface if necessary + + // Basic authorization for proxy server if necessary + proxyAuth: 'user:password', + + // Header fields for proxy server if necessary + headers: { + 'User-Agent': 'Node' + } + } +}); + +var req = http.request({ + host: 'example.com', + port: 80, + agent: tunnelingAgent +}); +``` + +### HTTPS over HTTP tunneling + +```javascript +var tunnelingAgent = tunnel.httpsOverHttp({ + maxSockets: poolSize, // Defaults to 5 + + // CA for origin server if necessary + ca: [ fs.readFileSync('origin-server-ca.pem')], + + // Client certification for origin server if necessary + key: fs.readFileSync('origin-server-key.pem'), + cert: fs.readFileSync('origin-server-cert.pem'), + + proxy: { // Proxy settings + host: proxyHost, // Defaults to 'localhost' + port: proxyPort, // Defaults to 80 + localAddress: localAddress, // Local interface if necessary + + // Basic authorization for proxy server if necessary + proxyAuth: 'user:password', + + // Header fields for proxy server if necessary + headers: { + 'User-Agent': 'Node' + }, + } +}); + +var req = https.request({ + host: 'example.com', + port: 443, + agent: tunnelingAgent +}); +``` + +### HTTP over HTTPS tunneling + +```javascript +var tunnelingAgent = tunnel.httpOverHttps({ + maxSockets: poolSize, // Defaults to 5 + + proxy: { // Proxy settings + host: proxyHost, // Defaults to 'localhost' + port: proxyPort, // Defaults to 443 + localAddress: localAddress, // Local interface if necessary + + // Basic authorization for proxy server if necessary + proxyAuth: 'user:password', + + // Header fields for proxy server if necessary + headers: { + 'User-Agent': 'Node' + }, + + // CA for proxy server if necessary + ca: [ fs.readFileSync('origin-server-ca.pem')], + + // Server name for verification if necessary + servername: 'example.com', + + // Client certification for proxy server if necessary + key: fs.readFileSync('origin-server-key.pem'), + cert: fs.readFileSync('origin-server-cert.pem'), + } +}); + +var req = http.request({ + host: 'example.com', + port: 80, + agent: tunnelingAgent +}); +``` + +### HTTPS over HTTPS tunneling + +```javascript +var tunnelingAgent = tunnel.httpsOverHttps({ + maxSockets: poolSize, // Defaults to 5 + + // CA for origin server if necessary + ca: [ fs.readFileSync('origin-server-ca.pem')], + + // Client certification for origin server if necessary + key: fs.readFileSync('origin-server-key.pem'), + cert: fs.readFileSync('origin-server-cert.pem'), + + proxy: { // Proxy settings + host: proxyHost, // Defaults to 'localhost' + port: proxyPort, // Defaults to 443 + localAddress: localAddress, // Local interface if necessary + + // Basic authorization for proxy server if necessary + proxyAuth: 'user:password', + + // Header fields for proxy server if necessary + headers: { + 'User-Agent': 'Node' + } + + // CA for proxy server if necessary + ca: [ fs.readFileSync('origin-server-ca.pem')], + + // Server name for verification if necessary + servername: 'example.com', + + // Client certification for proxy server if necessary + key: fs.readFileSync('origin-server-key.pem'), + cert: fs.readFileSync('origin-server-cert.pem'), + } +}); + +var req = https.request({ + host: 'example.com', + port: 443, + agent: tunnelingAgent +}); +``` + +## License + +This module is released under the [MIT License](http://www.opensource.org/licenses/mit-license.php). diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/index.js b/packages/NoGit.0.1.0/node_modules/tunnel/index.js new file mode 100644 index 0000000..2947757 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/index.js @@ -0,0 +1 @@ +module.exports = require('./lib/tunnel'); diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/lib/tunnel.js b/packages/NoGit.0.1.0/node_modules/tunnel/lib/tunnel.js new file mode 100644 index 0000000..f25f585 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/lib/tunnel.js @@ -0,0 +1,236 @@ +'use strict'; + +var net = require('net'); +var tls = require('tls'); +var http = require('http'); +var https = require('https'); +var events = require('events'); +var assert = require('assert'); +var util = require('util'); + + +exports.httpOverHttp = httpOverHttp; +exports.httpsOverHttp = httpsOverHttp; +exports.httpOverHttps = httpOverHttps; +exports.httpsOverHttps = httpsOverHttps; + + +function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; +} + +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + return agent; +} + +function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; +} + +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + return agent; +} + + +function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; + + self.on('free', function onFree(socket, host, port) { + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i]; + if (pending.host === host && pending.port === port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self.removeSocket(socket); + }); +} +util.inherits(TunnelingAgent, events.EventEmitter); + +TunnelingAgent.prototype.addRequest = function addRequest(req, options) { + var self = this; + var host = options.host; + var port = options.port; + + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push({host: host, port: port, request: req}); + return; + } + + // If we are under maxSockets create a new one. + self.createSocket({host: host, port: port, request: req}, function(socket) { + socket.on('free', onFree); + socket.on('close', onCloseOrRemove); + socket.on('agentRemove', onCloseOrRemove); + req.onSocket(socket); + + function onFree() { + self.emit('free', socket, host, port); + } + + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener('free', onFree); + socket.removeListener('close', onCloseOrRemove); + socket.removeListener('agentRemove', onCloseOrRemove); + } + }); +}; + +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); + + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false + }); + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {}; + connectOptions.headers['Proxy-Authorization'] = 'Basic ' + + new Buffer(connectOptions.proxyAuth).toString('base64'); + } + + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; // for v0.6 + connectReq.once('response', onResponse); // for v0.6 + connectReq.once('upgrade', onUpgrade); // for v0.6 + connectReq.once('connect', onConnect); // for v0.7 or later + connectReq.once('error', onError); + connectReq.end(); + + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; + } + + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head); + }); + } + + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); + + if (res.statusCode === 200) { + assert.equal(head.length, 0); + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + cb(socket); + } else { + debug('tunneling socket could not be established, statusCode=%d', + res.statusCode); + var error = new Error('tunneling socket could not be established, ' + + 'sutatusCode=' + res.statusCode); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + } + } + + function onError(cause) { + connectReq.removeAllListeners(); + + debug('tunneling socket could not be established, cause=%s\n', + cause.message, cause.stack); + var error = new Error('tunneling socket could not be established, ' + + 'cause=' + cause.message); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + } +}; + +TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { + var pos = this.sockets.indexOf(socket) + if (pos === -1) { + return; + } + this.sockets.splice(pos, 1); + + var pending = this.requests.shift(); + if (pending) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + } +}; + +function createSecureSocket(options, cb) { + var self = this; + TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { + var hostHeader = options.request.getHeader('host'); + var tlsOptions = mergeOptions({}, self.options, { + socket: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); + + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); +} + + +function mergeOptions(target) { + for (var i = 1, len = arguments.length; i < len; ++i) { + var overrides = arguments[i]; + if (typeof overrides === 'object') { + var keys = Object.keys(overrides); + for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { + var k = keys[j]; + if (overrides[k] !== undefined) { + target[k] = overrides[k]; + } + } + } + } + return target; +} + + +var debug; +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = function() { + var args = Array.prototype.slice.call(arguments); + if (typeof args[0] === 'string') { + args[0] = 'TUNNEL: ' + args[0]; + } else { + args.unshift('TUNNEL:'); + } + console.error.apply(console, args); + } +} else { + debug = function() {}; +} +exports.debug = debug; // for test diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/package.json b/packages/NoGit.0.1.0/node_modules/tunnel/package.json new file mode 100644 index 0000000..b11aa7d --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/package.json @@ -0,0 +1,70 @@ +{ + "_args": [ + [ + "tunnel@https://github.com/whyleee/node-tunnel/tarball/node-0.12-fix", + "C:\\temp\\forpg\\node_modules\\global-tunnel" + ] + ], + "_from": "https://github.com/whyleee/node-tunnel/tarball/node-0.12-fix", + "_id": "tunnel@0.0.3", + "_inCache": true, + "_location": "/tunnel", + "_phantomChildren": {}, + "_requested": { + "name": "tunnel", + "raw": "tunnel@https://github.com/whyleee/node-tunnel/tarball/node-0.12-fix", + "rawSpec": "https://github.com/whyleee/node-tunnel/tarball/node-0.12-fix", + "scope": null, + "spec": "https://github.com/whyleee/node-tunnel/tarball/node-0.12-fix", + "type": "remote" + }, + "_requiredBy": [ + "/global-tunnel" + ], + "_resolved": "https://github.com/whyleee/node-tunnel/tarball/node-0.12-fix", + "_shasum": "c6724ca7783c933e802122831bce4156d5472ec3", + "_shrinkwrap": null, + "_spec": "tunnel@https://github.com/whyleee/node-tunnel/tarball/node-0.12-fix", + "_where": "C:\\temp\\forpg\\node_modules\\global-tunnel", + "author": { + "email": "koichik@improvement.jp", + "name": "Koichi Kobayashi" + }, + "bugs": { + "url": "https://github.com/koichik/node-tunnel/issues" + }, + "dependencies": {}, + "description": "Node HTTP/HTTPS Agents for tunneling proxies", + "devDependencies": { + "mocha": "*", + "should": "*" + }, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + }, + "homepage": "https://github.com/koichik/node-tunnel/", + "installable": true, + "keywords": [ + "agent", + "http", + "https", + "proxy" + ], + "licenses": { + "type": "The MIT License", + "url": "http://www.opensource.org/licenses/mit-license.php" + }, + "main": "./index.js", + "name": "tunnel", + "optionalDependencies": {}, + "readme": "# node-tunnel - HTTP/HTTPS Agents for tunneling proxies\n\n## Example\n\n```javascript\nvar tunnel = require('tunnel');\n\nvar tunnelingAgent = tunnel.httpsOverHttp({\n proxy: {\n host: 'localhost',\n port: 3128\n }\n});\n\nvar req = https.request({\n host: 'example.com',\n port: 443,\n agent: tunnelingAgent\n});\n```\n\n## Installation\n\n $ npm install tunnel\n\n## Usages\n\n### HTTP over HTTP tunneling\n\n```javascript\nvar tunnelingAgent = tunnel.httpOverHttp({\n maxSockets: poolSize, // Defaults to 5\n\n proxy: { // Proxy settings\n host: proxyHost, // Defaults to 'localhost'\n port: proxyPort, // Defaults to 80\n localAddress: localAddress, // Local interface if necessary\n\n // Basic authorization for proxy server if necessary\n proxyAuth: 'user:password',\n\n // Header fields for proxy server if necessary\n headers: {\n 'User-Agent': 'Node'\n }\n }\n});\n\nvar req = http.request({\n host: 'example.com',\n port: 80,\n agent: tunnelingAgent\n});\n```\n\n### HTTPS over HTTP tunneling\n\n```javascript\nvar tunnelingAgent = tunnel.httpsOverHttp({\n maxSockets: poolSize, // Defaults to 5\n\n // CA for origin server if necessary\n ca: [ fs.readFileSync('origin-server-ca.pem')],\n\n // Client certification for origin server if necessary\n key: fs.readFileSync('origin-server-key.pem'),\n cert: fs.readFileSync('origin-server-cert.pem'),\n\n proxy: { // Proxy settings\n host: proxyHost, // Defaults to 'localhost'\n port: proxyPort, // Defaults to 80\n localAddress: localAddress, // Local interface if necessary\n\n // Basic authorization for proxy server if necessary\n proxyAuth: 'user:password',\n\n // Header fields for proxy server if necessary\n headers: {\n 'User-Agent': 'Node'\n },\n }\n});\n\nvar req = https.request({\n host: 'example.com',\n port: 443,\n agent: tunnelingAgent\n});\n```\n\n### HTTP over HTTPS tunneling\n\n```javascript\nvar tunnelingAgent = tunnel.httpOverHttps({\n maxSockets: poolSize, // Defaults to 5\n\n proxy: { // Proxy settings\n host: proxyHost, // Defaults to 'localhost'\n port: proxyPort, // Defaults to 443\n localAddress: localAddress, // Local interface if necessary\n\n // Basic authorization for proxy server if necessary\n proxyAuth: 'user:password',\n\n // Header fields for proxy server if necessary\n headers: {\n 'User-Agent': 'Node'\n },\n\n // CA for proxy server if necessary\n ca: [ fs.readFileSync('origin-server-ca.pem')],\n\n // Server name for verification if necessary\n servername: 'example.com',\n\n // Client certification for proxy server if necessary\n key: fs.readFileSync('origin-server-key.pem'),\n cert: fs.readFileSync('origin-server-cert.pem'),\n }\n});\n\nvar req = http.request({\n host: 'example.com',\n port: 80,\n agent: tunnelingAgent\n});\n```\n\n### HTTPS over HTTPS tunneling\n\n```javascript\nvar tunnelingAgent = tunnel.httpsOverHttps({\n maxSockets: poolSize, // Defaults to 5\n\n // CA for origin server if necessary\n ca: [ fs.readFileSync('origin-server-ca.pem')],\n\n // Client certification for origin server if necessary\n key: fs.readFileSync('origin-server-key.pem'),\n cert: fs.readFileSync('origin-server-cert.pem'),\n\n proxy: { // Proxy settings\n host: proxyHost, // Defaults to 'localhost'\n port: proxyPort, // Defaults to 443\n localAddress: localAddress, // Local interface if necessary\n\n // Basic authorization for proxy server if necessary\n proxyAuth: 'user:password',\n\n // Header fields for proxy server if necessary\n headers: {\n 'User-Agent': 'Node'\n }\n\n // CA for proxy server if necessary\n ca: [ fs.readFileSync('origin-server-ca.pem')],\n\n // Server name for verification if necessary\n servername: 'example.com',\n\n // Client certification for proxy server if necessary\n key: fs.readFileSync('origin-server-key.pem'),\n cert: fs.readFileSync('origin-server-cert.pem'),\n }\n});\n\nvar req = https.request({\n host: 'example.com',\n port: 443,\n agent: tunnelingAgent\n});\n```\n\n## License\n\nThis module is released under the [MIT License](http://www.opensource.org/licenses/mit-license.php).\n", + "readmeFilename": "README.md", + "repository": { + "type": "git", + "url": "git+https://github.com/koichik/node-tunnel.git" + }, + "scripts": { + "test": "./node_modules/mocha/bin/mocha" + }, + "version": "0.0.3" +} diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/http-over-http.js b/packages/NoGit.0.1.0/node_modules/tunnel/test/http-over-http.js new file mode 100644 index 0000000..73d17a2 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/http-over-http.js @@ -0,0 +1,108 @@ +var http = require('http'); +var net = require('net'); +var should = require('should'); +var tunnel = require('../index'); + +describe('HTTP over HTTP', function() { + it('should finish without error', function(done) { + var serverPort = 3000; + var proxyPort = 3001; + var poolSize = 3; + var N = 10; + var serverConnect = 0; + var proxyConnect = 0; + var clientConnect = 0; + var server; + var proxy; + var agent; + + server = http.createServer(function(req, res) { + tunnel.debug('SERVER: got request'); + ++serverConnect; + res.writeHead(200); + res.end('Hello' + req.url); + tunnel.debug('SERVER: sending response'); + }); + server.listen(serverPort, setupProxy); + + function setupProxy() { + proxy = http.createServer(function(req, res) { + should.fail(); + }); + proxy.on('upgrade', onConnect); // for v0.6 + proxy.on('connect', onConnect); // for v0.7 or later + + function onConnect(req, clientSocket, head) { + tunnel.debug('PROXY: got CONNECT request'); + + req.method.should.equal('CONNECT'); + req.url.should.equal('localhost:' + serverPort); + req.headers.should.not.have.property('transfer-encoding'); + req.headers.should.have.property('proxy-authorization', + 'Basic ' + new Buffer('user:password').toString('base64')); + ++proxyConnect; + + tunnel.debug('PROXY: creating a tunnel'); + var serverSocket = net.connect(serverPort, function() { + tunnel.debug('PROXY: replying to client CONNECT request'); + clientSocket.write('HTTP/1.1 200 Connection established\r\n\r\n'); + clientSocket.pipe(serverSocket); + serverSocket.write(head); + serverSocket.pipe(clientSocket); + // workaround, see joyent/node#2524 + serverSocket.on('end', function() { + clientSocket.end(); + }); + }); + } + proxy.listen(proxyPort, setupClient); + } + + function setupClient() { + agent = tunnel.httpOverHttp({ + maxSockets: poolSize, + proxy: { + port: proxyPort, + proxyAuth: 'user:password' + } + }); + + for (var i = 0; i < N; ++i) { + doClientRequest(i); + } + + function doClientRequest(i) { + tunnel.debug('CLIENT: Making HTTP request (%d)', i); + var req = http.get({ + port: serverPort, + path: '/' + i, + agent: agent + }, function(res) { + tunnel.debug('CLIENT: got HTTP response (%d)', i); + res.setEncoding('utf8'); + res.on('data', function(data) { + data.should.equal('Hello/' + i); + }); + res.on('end', function() { + ++clientConnect; + if (clientConnect === N) { + proxy.close(); + server.close(); + } + }); + }); + } + } + + server.on('close', function() { + serverConnect.should.equal(N); + proxyConnect.should.equal(poolSize); + clientConnect.should.equal(N); + + agent.sockets.should.be.empty; + agent.requests.should.be.empty; + + done(); + }); + }); +}); diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/http-over-https.js b/packages/NoGit.0.1.0/node_modules/tunnel/test/http-over-https.js new file mode 100644 index 0000000..0d12b17 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/http-over-https.js @@ -0,0 +1,122 @@ +var http = require('http'); +var https = require('https'); +var net = require('net'); +var fs = require('fs'); +var path = require('path'); +var should = require('should'); +var tunnel = require('../index'); + +function readPem(file) { + return fs.readFileSync(path.join('test/keys', file + '.pem')); +} + +describe('HTTP over HTTPS', function() { + it('should finish without error', function(done) { + var serverPort = 3004; + var proxyPort = 3005; + var poolSize = 3; + var N = 10; + var serverConnect = 0; + var proxyConnect = 0; + var clientConnect = 0; + var server; + var proxy; + var agent; + + server = http.createServer(function(req, res) { + tunnel.debug('SERVER: got request'); + ++serverConnect; + res.writeHead(200); + res.end('Hello' + req.url); + tunnel.debug('SERVER: sending response'); + }); + server.listen(serverPort, setupProxy); + + function setupProxy() { + proxy = https.createServer({ + key: readPem('agent4-key'), + cert: readPem('agent4-cert'), + ca: [readPem('ca2-cert')], // ca for agent3 + requestCert: true, + rejectUnauthorized: true + }, function(req, res) { + should.fail(); + }); + proxy.on('upgrade', onConnect); // for v0.6 + proxy.on('connect', onConnect); // for v0.7 or later + + function onConnect(req, clientSocket, head) { + tunnel.debug('PROXY: got CONNECT request'); + + req.method.should.equal('CONNECT'); + req.url.should.equal('localhost:' + serverPort); + req.headers.should.not.have.property('transfer-encoding'); + ++proxyConnect; + + tunnel.debug('PROXY: creating a tunnel'); + var serverSocket = net.connect(serverPort, function() { + tunnel.debug('PROXY: replying to client CONNECT request'); + clientSocket.write('HTTP/1.1 200 Connection established\r\n\r\n'); + clientSocket.pipe(serverSocket); + serverSocket.write(head); + serverSocket.pipe(clientSocket); + // workaround, see joyent/node#2524 + serverSocket.on('end', function() { + clientSocket.end(); + }); + }); + } + proxy.listen(proxyPort, setupClient); + } + + function setupClient() { + agent = tunnel.httpOverHttps({ + maxSockets: poolSize, + proxy: { + port: proxyPort, + // client certification for proxy + key: readPem('agent3-key'), + cert: readPem('agent3-cert') + } + }); + + for (var i = 0; i < N; ++i) { + doClientRequest(i); + } + + function doClientRequest(i) { + tunnel.debug('CLIENT: Making HTTP request (%d)', i); + var req = http.get({ + port: serverPort, + path: '/' + i, + agent: agent + }, function(res) { + tunnel.debug('CLIENT: got HTTP response (%d)', i); + res.setEncoding('utf8'); + res.on('data', function(data) { + data.should.equal('Hello/' + i); + }); + res.on('end', function() { + ++clientConnect; + if (clientConnect === N) { + proxy.close(); + server.close(); + } + }); + }); + } + } + + server.on('close', function() { + serverConnect.should.equal(N); + proxyConnect.should.equal(poolSize); + clientConnect.should.equal(N); + + var name = 'localhost:' + serverPort; + agent.sockets.should.be.empty; + agent.requests.should.be.empty; + + done(); + }); + }); +}); diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/https-over-http.js b/packages/NoGit.0.1.0/node_modules/tunnel/test/https-over-http.js new file mode 100644 index 0000000..1d40c69 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/https-over-http.js @@ -0,0 +1,121 @@ +var http = require('http'); +var https = require('https'); +var net = require('net'); +var fs = require('fs'); +var path = require('path'); +var should = require('should'); +var tunnel = require('../index'); + +function readPem(file) { + return fs.readFileSync(path.join('test/keys', file + '.pem')); +} + +describe('HTTPS over HTTP', function() { + it('should finish without error', function(done) { + var serverPort = 3002; + var proxyPort = 3003; + var poolSize = 3; + var N = 10; + var serverConnect = 0; + var proxyConnect = 0; + var clientConnect = 0; + var server; + var proxy; + var agent; + + server = https.createServer({ + key: readPem('agent2-key'), + cert: readPem('agent2-cert'), + ca: [readPem('ca1-cert')], // ca for agent1 + requestCert: true, + rejectUnauthorized: true + }, function(req, res) { + tunnel.debug('SERVER: got request'); + ++serverConnect; + res.writeHead(200); + res.end('Hello' + req.url); + tunnel.debug('SERVER: sending response'); + }); + server.listen(serverPort, setupProxy); + + function setupProxy() { + proxy = http.createServer(function(req, res) { + should.fail(); + }); + proxy.on('upgrade', onConnect); // for v0.6 + proxy.on('connect', onConnect); // for v0.7 or later + + function onConnect(req, clientSocket, head) { + tunnel.debug('PROXY: got CONNECT request'); + + req.method.should.equal('CONNECT'); + req.url.should.equal('localhost:' + serverPort); + req.headers.should.not.have.property('transfer-encoding'); + ++proxyConnect; + + var serverSocket = net.connect(serverPort, function() { + tunnel.debug('PROXY: replying to client CONNECT request'); + clientSocket.write('HTTP/1.1 200 Connection established\r\n\r\n'); + clientSocket.pipe(serverSocket); + serverSocket.write(head); + serverSocket.pipe(clientSocket); + // workaround, see joyent/node#2524 + serverSocket.on('end', function() { + clientSocket.end(); + }); + }); + } + proxy.listen(proxyPort, setupClient); + } + + function setupClient() { + agent = tunnel.httpsOverHttp({ + maxSockets: poolSize, + // client certification for origin server + key: readPem('agent1-key'), + cert: readPem('agent1-cert'), + proxy: { + port: proxyPort + } + }); + + for (var i = 0; i < N; ++i) { + doClientRequest(i); + } + + function doClientRequest(i) { + tunnel.debug('CLIENT: Making HTTPS request (%d)', i); + var req = https.get({ + port: serverPort, + path: '/' + i, + agent: agent + }, function(res) { + tunnel.debug('CLIENT: got HTTPS response (%d)', i); + res.setEncoding('utf8'); + res.on('data', function(data) { + data.should.equal('Hello/' + i); + }); + res.on('end', function() { + ++clientConnect; + if (clientConnect === N) { + proxy.close(); + server.close(); + } + }); + }); + } + } + + server.on('close', function() { + serverConnect.should.equal(N); + proxyConnect.should.equal(poolSize); + clientConnect.should.equal(N); + + var name = 'localhost:' + serverPort; + agent.sockets.should.be.empty; + agent.requests.should.be.empty; + + done(); + }); + }); +}); diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/https-over-https-error.js b/packages/NoGit.0.1.0/node_modules/tunnel/test/https-over-https-error.js new file mode 100644 index 0000000..33f4810 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/https-over-https-error.js @@ -0,0 +1,212 @@ +var http = require('http'); +var https = require('https'); +var net = require('net'); +var fs = require('fs'); +var path = require('path'); +var should = require('should'); +var tunnel = require('../index'); + +function readPem(file) { + return fs.readFileSync(path.join('test/keys', file + '.pem')); +} + +describe('HTTPS over HTTPS authentication failed', function() { + it('should finish without error', function(done) { + var serverPort = 3008; + var proxyPort = 3009; + var serverConnect = 0; + var proxyConnect = 0; + var clientRequest = 0; + var clientConnect = 0; + var clientError = 0; + var server; + var proxy; + + server = https.createServer({ + key: readPem('agent1-key'), // agent1 is signed by ca1 + cert: readPem('agent1-cert'), + ca: [ readPem('ca2-cert') ], // ca for agent3 + requestCert: true, + rejectUnauthorized: true + }, function(req, res) { + tunnel.debug('SERVER: got request'); + ++serverConnect; + res.writeHead(200); + res.end('Hello, ' + serverConnect); + tunnel.debug('SERVER: sending response'); + }); + server.listen(serverPort, setupProxy); + + function setupProxy() { + proxy = https.createServer({ + key: readPem('agent3-key'), // agent3 is signed by ca2 + cert: readPem('agent3-cert'), + ca: [ readPem('ca1-cert') ], // ca for agent1 + requestCert: true, + rejectUnauthorized: true + }, function(req, res) { + should.fail(); + }); + proxy.on('upgrade', onConnect); // for v0.6 + proxy.on('connect', onConnect); // for v0.7 or later + + function onConnect(req, clientSocket, head) { + req.method.should.equal('CONNECT'); + req.url.should.equal('localhost:' + serverPort); + req.headers.should.not.have.property('transfer-encoding'); + ++proxyConnect; + + var serverSocket = net.connect(serverPort, function() { + tunnel.debug('PROXY: replying to client CONNECT request'); + clientSocket.write('HTTP/1.1 200 Connection established\r\n\r\n'); + clientSocket.pipe(serverSocket); + serverSocket.write(head); + serverSocket.pipe(clientSocket); + // workaround, see #2524 + serverSocket.on('end', function() { + clientSocket.end(); + }); + }); + } + proxy.listen(proxyPort, setupClient); + } + + function setupClient() { + function doRequest(name, options, host) { + tunnel.debug('CLIENT: Making HTTPS request (%s)', name); + ++clientRequest; + var agent = tunnel.httpsOverHttps(options); + var req = https.get({ + port: serverPort, + headers: { + host: host ? host : 'localhost', + }, + agent: agent + }, function(res) { + tunnel.debug('CLIENT: got HTTPS response (%s)', name); + ++clientConnect; + req.emit('finish'); + }); + req.on('error', function(err) { + tunnel.debug('CLIENT: failed HTTP response (%s)', name, err); + ++clientError; + req.emit('finish'); + }); + req.on('finish', function() { + if (clientConnect + clientError === clientRequest) { + proxy.close(); + server.close(); + } + }); + } + + doRequest('no cert origin nor proxy', { // invalid + maxSockets: 1, + ca: [ readPem('ca1-cert') ], // ca for origin server (agent1) + rejectUnauthorized: true, + // no certificate for origin server + proxy: { + port: proxyPort, + servername: 'agent3', + ca: [ readPem('ca2-cert') ], // ca for proxy server (agent3) + rejectUnauthorized: true + // no certificate for proxy + } + }, 'agent1'); + + doRequest('no cert proxy', { // invalid + maxSockets: 1, + ca: [ readPem('ca1-cert') ], // ca for origin server (agent1) + rejectUnauthorized: true, + // client certification for origin server + key: readPem('agent3-key'), + cert: readPem('agent3-cert'), + proxy: { + port: proxyPort, + servername: 'agent3', + ca: [ readPem('ca2-cert') ], // ca for proxy server (agent3) + rejectUnauthorized: true + // no certificate for proxy + } + }, 'agent1'); + + doRequest('no cert origin', { // invalid + maxSockets: 1, + ca: [ readPem('ca1-cert') ], // ca for origin server (agent1) + rejectUnauthorized: true, + // no certificate for origin server + proxy: { + port: proxyPort, + servername: 'agent3', + ca: [ readPem('ca2-cert') ], // ca for proxy server (agent3) + rejectUnauthorized: true, + // client certification for proxy + key: readPem('agent1-key'), + cert: readPem('agent1-cert') + } + }, 'agent1'); + + doRequest('invalid proxy server name', { // invalid + maxSockets: 1, + ca: [ readPem('ca1-cert') ], // ca for origin server (agent1) + rejectUnauthorized: true, + // client certification for origin server + key: readPem('agent3-key'), + cert: readPem('agent3-cert'), + proxy: { + port: proxyPort, + ca: [ readPem('ca2-cert') ], // ca for agent3 + rejectUnauthorized: true, + // client certification for proxy + key: readPem('agent1-key'), + cert: readPem('agent1-cert') + } + }, 'agent1'); + + doRequest('invalid origin server name', { // invalid + maxSockets: 1, + ca: [ readPem('ca1-cert') ], // ca for agent1 + rejectUnauthorized: true, + // client certification for origin server + key: readPem('agent3-key'), + cert: readPem('agent3-cert'), + proxy: { + port: proxyPort, + servername: 'agent3', + ca: [ readPem('ca2-cert') ], // ca for proxy server (agent3) + rejectUnauthorized: true, + // client certification for proxy + key: readPem('agent1-key'), + cert: readPem('agent1-cert') + } + }); + + doRequest('valid', { // valid + maxSockets: 1, + ca: [ readPem('ca1-cert') ], // ca for origin server (agent1) + rejectUnauthorized: true, + // client certification for origin server + key: readPem('agent3-key'), + cert: readPem('agent3-cert'), + proxy: { + port: proxyPort, + servername: 'agent3', + ca: [ readPem('ca2-cert') ], // ca for proxy server (agent3) + rejectUnauthorized: true, + // client certification for proxy + key: readPem('agent1-key'), + cert: readPem('agent1-cert') + } + }, 'agent1'); + } + + server.on('close', function() { + serverConnect.should.equal(1); + proxyConnect.should.equal(3); + clientConnect.should.equal(1); + clientError.should.equal(5); + + done(); + }); + }); +}); diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/https-over-https.js b/packages/NoGit.0.1.0/node_modules/tunnel/test/https-over-https.js new file mode 100644 index 0000000..025b9c6 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/https-over-https.js @@ -0,0 +1,129 @@ +var http = require('http'); +var https = require('https'); +var net = require('net'); +var fs = require('fs'); +var path = require('path'); +var should = require('should'); +var tunnel = require('../index.js'); + +function readPem(file) { + return fs.readFileSync(path.join('test/keys', file + '.pem')); +} + +describe('HTTPS over HTTPS', function() { + it('should finish without error', function(done) { + var serverPort = 3006; + var proxyPort = 3007; + var poolSize = 3; + var N = 5; + var serverConnect = 0; + var proxyConnect = 0; + var clientConnect = 0; + var server; + var proxy; + var agent; + + server = https.createServer({ + key: readPem('agent2-key'), + cert: readPem('agent2-cert'), + ca: [readPem('ca1-cert')], // ca for agent1 + requestCert: true, + rejectUnauthorized: true + }, function(req, res) { + tunnel.debug('SERVER: got request'); + ++serverConnect; + res.writeHead(200); + res.end('Hello' + req.url); + tunnel.debug('SERVER: sending response'); + }); + server.listen(serverPort, setupProxy); + + function setupProxy() { + proxy = https.createServer({ + key: readPem('agent4-key'), + cert: readPem('agent4-cert'), + ca: [readPem('ca2-cert')], // ca for agent3 + requestCert: true, + rejectUnauthorized: true + }, function(req, res) { + should.fail(); + }); + proxy.on('upgrade', onConnect); // for v0.6 + proxy.on('connect', onConnect); // for v0.7 or later + + function onConnect(req, clientSocket, head) { + tunnel.debug('PROXY: got CONNECT request'); + req.method.should.equal('CONNECT'); + req.url.should.equal('localhost:' + serverPort); + req.headers.should.not.have.property('transfer-encoding'); + ++proxyConnect; + + var serverSocket = net.connect(serverPort, function() { + tunnel.debug('PROXY: replying to client CONNECT request'); + clientSocket.write('HTTP/1.1 200 Connection established\r\n\r\n'); + clientSocket.pipe(serverSocket); + serverSocket.write(head); + serverSocket.pipe(clientSocket); + // workaround, see joyent/node#2524 + serverSocket.on('end', function() { + clientSocket.end(); + }); + }); + } + proxy.listen(proxyPort, setupClient); + } + + function setupClient() { + agent = tunnel.httpsOverHttps({ + maxSockets: poolSize, + // client certification for origin server + key: readPem('agent1-key'), + cert: readPem('agent1-cert'), + proxy: { + port: proxyPort, + // client certification for proxy + key: readPem('agent3-key'), + cert: readPem('agent3-cert') + } + }); + + for (var i = 0; i < N; ++i) { + doClientRequest(i); + } + + function doClientRequest(i) { + tunnel.debug('CLIENT: Making HTTPS request (%d)', i); + var req = https.get({ + port: serverPort, + path: '/' + i, + agent: agent + }, function(res) { + tunnel.debug('CLIENT: got HTTPS response (%d)', i); + res.setEncoding('utf8'); + res.on('data', function(data) { + data.should.equal('Hello/' + i); + }); + res.on('end', function() { + ++clientConnect; + if (clientConnect === N) { + proxy.close(); + server.close(); + } + }); + }); + } + } + + server.on('close', function() { + serverConnect.should.equal(N); + proxyConnect.should.equal(poolSize); + clientConnect.should.equal(N); + + var name = 'localhost:' + serverPort; + agent.sockets.should.be.empty; + agent.requests.should.be.empty; + + done(); + }); + }); +}); diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/Makefile b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/Makefile new file mode 100644 index 0000000..fa64352 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/Makefile @@ -0,0 +1,137 @@ +all: agent1-cert.pem agent2-cert.pem agent3-cert.pem agent4-cert.pem ca2-crl.pem + + +# +# Create Certificate Authority: ca1 +# ('password' is used for the CA password.) +# +ca1-cert.pem: ca1.cnf + openssl req -new -x509 -days 9999 -config ca1.cnf -keyout ca1-key.pem -out ca1-cert.pem + +# +# Create Certificate Authority: ca2 +# ('password' is used for the CA password.) +# +ca2-cert.pem: ca2.cnf + openssl req -new -x509 -days 9999 -config ca2.cnf -keyout ca2-key.pem -out ca2-cert.pem + echo '01' > ca2-serial + touch ca2-database.txt + + +# +# agent1 is signed by ca1. +# + +agent1-key.pem: + openssl genrsa -out agent1-key.pem + +agent1-csr.pem: agent1.cnf agent1-key.pem + openssl req -new -config agent1.cnf -key agent1-key.pem -out agent1-csr.pem + +agent1-cert.pem: agent1-csr.pem ca1-cert.pem ca1-key.pem + openssl x509 -req \ + -days 9999 \ + -passin "pass:password" \ + -in agent1-csr.pem \ + -CA ca1-cert.pem \ + -CAkey ca1-key.pem \ + -CAcreateserial \ + -out agent1-cert.pem + +agent1-verify: agent1-cert.pem ca1-cert.pem + openssl verify -CAfile ca1-cert.pem agent1-cert.pem + + +# +# agent2 has a self signed cert +# +# Generate new private key +agent2-key.pem: + openssl genrsa -out agent2-key.pem + +# Create a Certificate Signing Request for the key +agent2-csr.pem: agent2-key.pem agent2.cnf + openssl req -new -config agent2.cnf -key agent2-key.pem -out agent2-csr.pem + +# Create a Certificate for the agent. +agent2-cert.pem: agent2-csr.pem agent2-key.pem + openssl x509 -req \ + -days 9999 \ + -in agent2-csr.pem \ + -signkey agent2-key.pem \ + -out agent2-cert.pem + +agent2-verify: agent2-cert.pem + openssl verify -CAfile agent2-cert.pem agent2-cert.pem + +# +# agent3 is signed by ca2. +# + +agent3-key.pem: + openssl genrsa -out agent3-key.pem + +agent3-csr.pem: agent3.cnf agent3-key.pem + openssl req -new -config agent3.cnf -key agent3-key.pem -out agent3-csr.pem + +agent3-cert.pem: agent3-csr.pem ca2-cert.pem ca2-key.pem + openssl x509 -req \ + -days 9999 \ + -passin "pass:password" \ + -in agent3-csr.pem \ + -CA ca2-cert.pem \ + -CAkey ca2-key.pem \ + -CAcreateserial \ + -out agent3-cert.pem + +agent3-verify: agent3-cert.pem ca2-cert.pem + openssl verify -CAfile ca2-cert.pem agent3-cert.pem + + +# +# agent4 is signed by ca2 (client cert) +# + +agent4-key.pem: + openssl genrsa -out agent4-key.pem + +agent4-csr.pem: agent4.cnf agent4-key.pem + openssl req -new -config agent4.cnf -key agent4-key.pem -out agent4-csr.pem + +agent4-cert.pem: agent4-csr.pem ca2-cert.pem ca2-key.pem + openssl x509 -req \ + -days 9999 \ + -passin "pass:password" \ + -in agent4-csr.pem \ + -CA ca2-cert.pem \ + -CAkey ca2-key.pem \ + -CAcreateserial \ + -extfile agent4.cnf \ + -extensions ext_key_usage \ + -out agent4-cert.pem + +agent4-verify: agent4-cert.pem ca2-cert.pem + openssl verify -CAfile ca2-cert.pem agent4-cert.pem + +# +# Make CRL with agent4 being rejected +# +ca2-crl.pem: ca2-key.pem ca2-cert.pem ca2.cnf + openssl ca -revoke agent4-cert.pem \ + -keyfile ca2-key.pem \ + -cert ca2-cert.pem \ + -config ca2.cnf + openssl ca \ + -keyfile ca2-key.pem \ + -cert ca2-cert.pem \ + -config ca2.cnf \ + -gencrl \ + -out ca2-crl.pem + +clean: + rm -f *.pem *.srl ca2-database.txt ca2-serial + +test: agent1-verify agent2-verify agent3-verify agent4-verify + + +.PHONY: all clean test agent1-verify agent2-verify agent3-verify agent4-verify diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent1-cert.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent1-cert.pem new file mode 100644 index 0000000..816f6fb --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent1-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICKjCCAZMCCQDQ8o4kHKdCPDANBgkqhkiG9w0BAQUFADB6MQswCQYDVQQGEwJV +UzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAO +BgNVBAsTB05vZGUuanMxDDAKBgNVBAMTA2NhMTEgMB4GCSqGSIb3DQEJARYRcnlA +dGlueWNsb3Vkcy5vcmcwHhcNMTEwMzE0MTgyOTEyWhcNMzgwNzI5MTgyOTEyWjB9 +MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQK +EwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MTEgMB4G +CSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwXDANBgkqhkiG9w0BAQEFAANL +ADBIAkEAnzpAqcoXZxWJz/WFK7BXwD23jlREyG11x7gkydteHvn6PrVBbB5yfu6c +bk8w3/Ar608AcyMQ9vHjkLQKH7cjEQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAKha +HqjCfTIut+m/idKy3AoFh48tBHo3p9Nl5uBjQJmahKdZAaiksL24Pl+NzPQ8LIU+ +FyDHFp6OeJKN6HzZ72Bh9wpBVu6Uj1hwhZhincyTXT80wtSI/BoUAW8Ls2kwPdus +64LsJhhxqj2m4vPKNRbHB2QxnNrGi30CUf3kt3Ia +-----END CERTIFICATE----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent1-csr.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent1-csr.pem new file mode 100644 index 0000000..748fd00 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent1-csr.pem @@ -0,0 +1,10 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIBXTCCAQcCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH +EwJTRjEPMA0GA1UEChMGSm95ZW50MRAwDgYDVQQLEwdOb2RlLmpzMQ8wDQYDVQQD +EwZhZ2VudDExIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMFwwDQYJ +KoZIhvcNAQEBBQADSwAwSAJBAJ86QKnKF2cVic/1hSuwV8A9t45URMhtdce4JMnb +Xh75+j61QWwecn7unG5PMN/wK+tPAHMjEPbx45C0Ch+3IxECAwEAAaAlMCMGCSqG +SIb3DQEJBzEWExRBIGNoYWxsZW5nZSBwYXNzd29yZDANBgkqhkiG9w0BAQUFAANB +AF+AfG64hNyYHum46m6i7RgnUBrJSOynGjs23TekV4he3QdMSAAPPqbll8W14+y3 +vOo7/yQ2v2uTqxCjakUNPPs= +-----END CERTIFICATE REQUEST----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent1-key.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent1-key.pem new file mode 100644 index 0000000..5dae7eb --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent1-key.pem @@ -0,0 +1,9 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIBOwIBAAJBAJ86QKnKF2cVic/1hSuwV8A9t45URMhtdce4JMnbXh75+j61QWwe +cn7unG5PMN/wK+tPAHMjEPbx45C0Ch+3IxECAwEAAQJBAI2cU1IuR+4IO87WPyAB +76kruoo87AeNQkjjvuQ/00+b/6IS45mcEP5Kw0NukbqBhIw2di9uQ9J51DJ/ZfQr ++YECIQDUHaN3ZjIdJ7/w8Yq9Zzz+3kY2F/xEz6e4ftOFW8bY2QIhAMAref+WYckC +oECgOLAvAxB1lI4j7oCbAaawfxKdnPj5AiEAi95rXx09aGpAsBGmSdScrPdG1v6j +83/2ebrvoZ1uFqkCIB0AssnrRVjUB6GZTNTyU3ERfdkx/RX1zvr8WkFR/lXpAiB7 +cUZ1i8ZkZrPrdVgw2cb28UJM7qZHQnXcMHTXFFvxeQ== +-----END RSA PRIVATE KEY----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent1.cnf b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent1.cnf new file mode 100644 index 0000000..81d2f09 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent1.cnf @@ -0,0 +1,19 @@ +[ req ] +default_bits = 1024 +days = 999 +distinguished_name = req_distinguished_name +attributes = req_attributes +prompt = no + +[ req_distinguished_name ] +C = US +ST = CA +L = SF +O = Joyent +OU = Node.js +CN = agent1 +emailAddress = ry@tinyclouds.org + +[ req_attributes ] +challengePassword = A challenge password + diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent2-cert.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent2-cert.pem new file mode 100644 index 0000000..8e4354d --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent2-cert.pem @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIIB7DCCAZYCCQC7gs0MDNn6MTANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJV +UzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAO +BgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MjEgMB4GCSqGSIb3DQEJARYR +cnlAdGlueWNsb3Vkcy5vcmcwHhcNMTEwMzE0MTgyOTEyWhcNMzgwNzI5MTgyOTEy +WjB9MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYD +VQQKEwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MjEg +MB4GCSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwXDANBgkqhkiG9w0BAQEF +AANLADBIAkEAyXb8FrRdKbhrKLgLSsn61i1C7w7fVVVd7OQsmV/7p9WB2lWFiDlC +WKGU9SiIz/A6wNZDUAuc2E+VwtpCT561AQIDAQABMA0GCSqGSIb3DQEBBQUAA0EA +C8HzpuNhFLCI3A5KkBS5zHAQax6TFUOhbpBCR0aTDbJ6F1liDTK1lmU/BjvPoj+9 +1LHwrmh29rK8kBPEjmymCQ== +-----END CERTIFICATE----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent2-csr.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent2-csr.pem new file mode 100644 index 0000000..a670c4c --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent2-csr.pem @@ -0,0 +1,10 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIBXTCCAQcCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH +EwJTRjEPMA0GA1UEChMGSm95ZW50MRAwDgYDVQQLEwdOb2RlLmpzMQ8wDQYDVQQD +EwZhZ2VudDIxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMFwwDQYJ +KoZIhvcNAQEBBQADSwAwSAJBAMl2/Ba0XSm4ayi4C0rJ+tYtQu8O31VVXezkLJlf ++6fVgdpVhYg5QlihlPUoiM/wOsDWQ1ALnNhPlcLaQk+etQECAwEAAaAlMCMGCSqG +SIb3DQEJBzEWExRBIGNoYWxsZW5nZSBwYXNzd29yZDANBgkqhkiG9w0BAQUFAANB +AJnll2pt5l0pzskQSpjjLVTlFDFmJr/AZ3UK8v0WxBjYjCe5Jx4YehkChpxIyDUm +U3J9q9MDUf0+Y2+EGkssFfk= +-----END CERTIFICATE REQUEST----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent2-key.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent2-key.pem new file mode 100644 index 0000000..522903c --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent2-key.pem @@ -0,0 +1,9 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIBOgIBAAJBAMl2/Ba0XSm4ayi4C0rJ+tYtQu8O31VVXezkLJlf+6fVgdpVhYg5 +QlihlPUoiM/wOsDWQ1ALnNhPlcLaQk+etQECAwEAAQJBAMT6Bf34+UHKY1ObpsbH +9u2jsVblFq1rWvs8GPMY6oertzvwm3DpuSUp7PTgOB1nLTLYtCERbQ4ovtN8tn3p +OHUCIQDzIEGsoCr5vlxXvy2zJwu+fxYuhTZWMVuo1397L0VyhwIhANQh+yzqUgaf +WRtSB4T2W7ADtJI35ET61jKBty3CqJY3AiAIwju7dVW3A5WeD6Qc1SZGKZvp9yCb +AFI2BfVwwaY11wIgXF3PeGcvACMyMWsuSv7aPXHfliswAbkWuzcwA4TW01ECIGWa +cgsDvVFxmfM5NPSuT/UDTa6R5BFISB5ea0N0AR3I +-----END RSA PRIVATE KEY----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent2.cnf b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent2.cnf new file mode 100644 index 0000000..0a9f2c7 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent2.cnf @@ -0,0 +1,19 @@ +[ req ] +default_bits = 1024 +days = 999 +distinguished_name = req_distinguished_name +attributes = req_attributes +prompt = no + +[ req_distinguished_name ] +C = US +ST = CA +L = SF +O = Joyent +OU = Node.js +CN = agent2 +emailAddress = ry@tinyclouds.org + +[ req_attributes ] +challengePassword = A challenge password + diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent3-cert.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent3-cert.pem new file mode 100644 index 0000000..e4a2350 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent3-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICKjCCAZMCCQCDBr594bsJmTANBgkqhkiG9w0BAQUFADB6MQswCQYDVQQGEwJV +UzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAO +BgNVBAsTB05vZGUuanMxDDAKBgNVBAMTA2NhMjEgMB4GCSqGSIb3DQEJARYRcnlA +dGlueWNsb3Vkcy5vcmcwHhcNMTEwMzE0MTgyOTEyWhcNMzgwNzI5MTgyOTEyWjB9 +MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQK +EwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MzEgMB4G +CSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwXDANBgkqhkiG9w0BAQEFAANL +ADBIAkEAtlNDZ+bHeBI0B2gD/IWqA7Aq1hwsnS4+XpnLesjTQcL2JwFFpkR0oWrw +yjrYhCogi7c5gjKrLZF1d2JD5JgHgQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAJoK +bXwsImk7vJz9649yrmsXwnuGbEKVYMvqcGyjaZNP9lYEG41y5CeRzxhWy2rlYdhE +f2nqE2lg75oJP7LQqfQY7aCqwahM3q/GQbsfKVCGjF7TVyq9TQzd8iW+FEJIQzSE +3aN85hR67+3VAXeSzmkGSVBO2m1SJIug4qftIkc2 +-----END CERTIFICATE----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent3-csr.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent3-csr.pem new file mode 100644 index 0000000..e6c0c74 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent3-csr.pem @@ -0,0 +1,10 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIBXTCCAQcCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH +EwJTRjEPMA0GA1UEChMGSm95ZW50MRAwDgYDVQQLEwdOb2RlLmpzMQ8wDQYDVQQD +EwZhZ2VudDMxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMFwwDQYJ +KoZIhvcNAQEBBQADSwAwSAJBALZTQ2fmx3gSNAdoA/yFqgOwKtYcLJ0uPl6Zy3rI +00HC9icBRaZEdKFq8Mo62IQqIIu3OYIyqy2RdXdiQ+SYB4ECAwEAAaAlMCMGCSqG +SIb3DQEJBzEWExRBIGNoYWxsZW5nZSBwYXNzd29yZDANBgkqhkiG9w0BAQUFAANB +AEGo76iH+a8pnE+RWQT+wg9/BL+iIuqrcFXLs0rbGonqderrwXAe15ODwql/Bfu3 +zgMt8ooTsgMPcMX9EgmubEM= +-----END CERTIFICATE REQUEST----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent3-key.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent3-key.pem new file mode 100644 index 0000000..d72f071 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent3-key.pem @@ -0,0 +1,9 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIBOwIBAAJBALZTQ2fmx3gSNAdoA/yFqgOwKtYcLJ0uPl6Zy3rI00HC9icBRaZE +dKFq8Mo62IQqIIu3OYIyqy2RdXdiQ+SYB4ECAwEAAQJAIk+G9s2SKgFa8y3a2jGZ +LfqABSzmJGooaIsOpLuYLd6eCC31XUDlT4rPVGRhysKQCQ4+NMjgdnj9ZqNnvXY/ +RQIhAOgbdltr3Ey2hy7RuDW5rmOeJTuVqCrZ7QI8ifyCEbYTAiEAyRfvWSvvASeP +kZTMUhATRUpuyDQW+058NE0oJSinTpsCIQCR/FPhBGI3TcaQyA9Ym0T4GwvIAkUX +TqInefRAAX8qSQIgZVJPAdIWGbHSL9sWW97HpukLCorcbYEtKbkamiZyrjMCIQCX +lX76ttkeId5OsJGQcF67eFMMr2UGZ1WMf6M39lCYHQ== +-----END RSA PRIVATE KEY----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent3.cnf b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent3.cnf new file mode 100644 index 0000000..26db5ba --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent3.cnf @@ -0,0 +1,19 @@ +[ req ] +default_bits = 1024 +days = 999 +distinguished_name = req_distinguished_name +attributes = req_attributes +prompt = no + +[ req_distinguished_name ] +C = US +ST = CA +L = SF +O = Joyent +OU = Node.js +CN = agent3 +emailAddress = ry@tinyclouds.org + +[ req_attributes ] +challengePassword = A challenge password + diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent4-cert.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent4-cert.pem new file mode 100644 index 0000000..07157b9 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent4-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSDCCAbGgAwIBAgIJAIMGvn3huwmaMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV +BAYTAlVTMQswCQYDVQQIEwJDQTELMAkGA1UEBxMCU0YxDzANBgNVBAoTBkpveWVu +dDEQMA4GA1UECxMHTm9kZS5qczEMMAoGA1UEAxMDY2EyMSAwHgYJKoZIhvcNAQkB +FhFyeUB0aW55Y2xvdWRzLm9yZzAeFw0xMTAzMTQxODI5MTJaFw0zODA3MjkxODI5 +MTJaMH0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTELMAkGA1UEBxMCU0YxDzAN +BgNVBAoTBkpveWVudDEQMA4GA1UECxMHTm9kZS5qczEPMA0GA1UEAxMGYWdlbnQ0 +MSAwHgYJKoZIhvcNAQkBFhFyeUB0aW55Y2xvdWRzLm9yZzBcMA0GCSqGSIb3DQEB +AQUAA0sAMEgCQQDN/yMfmQ8zdvmjlGk7b3Mn6wY2FjaMb4c5ENJX15vyYhKS1zhx +6n0kQIn2vf6yqG7tO5Okz2IJiD9Sa06mK6GrAgMBAAGjFzAVMBMGA1UdJQQMMAoG +CCsGAQUFBwMCMA0GCSqGSIb3DQEBBQUAA4GBAA8FXpRmdrHBdlofNvxa14zLvv0N +WnUGUmxVklFLKXvpVWTanOhVgI2TDCMrT5WvCRTD25iT1EUKWxjDhFJrklQJ+IfC +KC6fsgO7AynuxWSfSkc8/acGiAH+20vW9QxR53HYiIDMXEV/wnE0KVcr3t/d70lr +ImanTrunagV+3O4O +-----END CERTIFICATE----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent4-csr.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent4-csr.pem new file mode 100644 index 0000000..97e115d --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent4-csr.pem @@ -0,0 +1,10 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIBXTCCAQcCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH +EwJTRjEPMA0GA1UEChMGSm95ZW50MRAwDgYDVQQLEwdOb2RlLmpzMQ8wDQYDVQQD +EwZhZ2VudDQxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMFwwDQYJ +KoZIhvcNAQEBBQADSwAwSAJBAM3/Ix+ZDzN2+aOUaTtvcyfrBjYWNoxvhzkQ0lfX +m/JiEpLXOHHqfSRAifa9/rKobu07k6TPYgmIP1JrTqYroasCAwEAAaAlMCMGCSqG +SIb3DQEJBzEWExRBIGNoYWxsZW5nZSBwYXNzd29yZDANBgkqhkiG9w0BAQUFAANB +AMzo7GUOBtGm5MSck1rrEE2C1bU3qoVvXVuiN3A/57zXeNeq24FZMLnkDeL9U+/b +Kj646XFou04gla982Xp74p0= +-----END CERTIFICATE REQUEST----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent4-key.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent4-key.pem new file mode 100644 index 0000000..b770b01 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent4-key.pem @@ -0,0 +1,9 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIBOQIBAAJBAM3/Ix+ZDzN2+aOUaTtvcyfrBjYWNoxvhzkQ0lfXm/JiEpLXOHHq +fSRAifa9/rKobu07k6TPYgmIP1JrTqYroasCAwEAAQJAN8RQb+dx1A7rejtdWbfM +Rww7PD07Oz2eL/a72wgFsdIabRuVypIoHunqV0sAegYtNJt9yu+VhREw0R5tx/qz +EQIhAPY+nmzp0b4iFRk7mtGUmCTr9iwwzoqzITwphE7FpQnFAiEA1ihUHFT9YPHO +f85skM6qZv77NEgXHO8NJmQZ5GX1ZK8CICzle+Mluo0tD6W7HV4q9pZ8wzSJbY8S +W/PpKetm09F1AiAWTw8sAGKAtc/IGo3Oq+iuYAN1F8lolzJsfGMCGujsOwIgAJKP +t3eXilwX3ZlsDWSklWNZ7iYcfYrvAc3JqU6gFCE= +-----END RSA PRIVATE KEY----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent4.cnf b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent4.cnf new file mode 100644 index 0000000..5e583eb --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/agent4.cnf @@ -0,0 +1,21 @@ +[ req ] +default_bits = 1024 +days = 999 +distinguished_name = req_distinguished_name +attributes = req_attributes +prompt = no + +[ req_distinguished_name ] +C = US +ST = CA +L = SF +O = Joyent +OU = Node.js +CN = agent4 +emailAddress = ry@tinyclouds.org + +[ req_attributes ] +challengePassword = A challenge password + +[ ext_key_usage ] +extendedKeyUsage = clientAuth diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca1-cert.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca1-cert.pem new file mode 100644 index 0000000..1951de7 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca1-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICazCCAdQCCQDTlFdg2h0DBjANBgkqhkiG9w0BAQUFADB6MQswCQYDVQQGEwJV +UzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAO +BgNVBAsTB05vZGUuanMxDDAKBgNVBAMTA2NhMTEgMB4GCSqGSIb3DQEJARYRcnlA +dGlueWNsb3Vkcy5vcmcwHhcNMTEwMzE0MTgyOTEyWhcNMzgwNzI5MTgyOTEyWjB6 +MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQK +EwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDDAKBgNVBAMTA2NhMTEgMB4GCSqG +SIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0A +MIGJAoGBAKxbsLdJbi53pcP1pzg8lgJhLEvcNlV2ogr97WURp+gPjK+HFXj2xl9w +qDQrxpmvTya+urBG7OagTjV1E7dRE7PTr4TkEqehmxF026Opb0PZewuIBOKX4UgG +PSfk0fksrje6YJb+OkiBfA/q7eznZF8cmq7MRrs7LWe9A6Bic/apAgMBAAEwDQYJ +KoZIhvcNAQEFBQADgYEAk6hlYgjCBihG4dM+3324W1WsvjU8QscsTXu8SGL0y9b6 +82zZikj0W9FU6u98WHtXwuFt3mKlGCcou2pluZvj02T2iVKSMs2oYL8JOlvM8hVf +GEeg2EriLlzmdxNz4/I86DlBiyoTijZh8/qrItsK7+a56P0exH8ouXzlhL1Bhjw= +-----END CERTIFICATE----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca1-cert.srl b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca1-cert.srl new file mode 100644 index 0000000..046be14 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca1-cert.srl @@ -0,0 +1 @@ +D0F28E241CA7423C diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca1-key.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca1-key.pem new file mode 100644 index 0000000..a4e4516 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca1-key.pem @@ -0,0 +1,17 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIrulhMUmafvECAggA +MBQGCCqGSIb3DQMHBAjsjahmkf3zGwSCAoANt0xX8ZZT2CxeyUadbOuku6NrHoFy +YBvnEFvuq3TGm3NB72BxprvfMUNR5Xi6e6rJgtRQttPRX6oN2qfB8+W11vFBeFWG +gxarEotklca4bujPMwxRowyMT20n+yXvRc+Fd5tYrMcaBeweQZD69J242HJMJJmq +Lzvo2qYGaOxjpc8aUDzeDsv8cnlh5Xk1ZcRucRPM9j26KOPSt0wOd4RdN83AE8cW +Xu+k5TSMlPQLWihjS+KzEQ8Rs9CuubxrdmecF6DM70u0kYCLZ1Ex7+kBZu06CUpJ +PODaLca4W92XkBq4X25WgAAaCAj4nZZmgn0X0Fwl1lBqjOK5nEnYpjxuwjjJ2KVz +3j+kBK5tW6RBE4BM37r7NiM1FAzi8sgNYSVS9oa4m1qGfadEEQdhaMsAfM0SZ/8M +6NUPKlQmoDda9aCO7rqRuQ7pYQ9mpNxcWEBQi0cG6/3VXtqi/TewAKT1T5DToAzg +pL4eOTqeDp4VKif5r2u7Nj0EiM4j2TT88onGsdgRtjgUpNmJCRWYaCzs3QZggdYE +nLZt7ZRXpJ11tERKG3b28qrIw9jHULRAjjWEkEGbxYTpAlrgXklV/04XXnxxAVOP +0YjDzbfx5QCRCq5UHV4Gl3ELoBaOuxcIIN8YrE2oC1CY9uV/HSk4CSlxHNtWyxbA +WbCU2SoEHnwBVlTPbZyfErM33c3u4LJyNx6ah7NzMh5AoQ+cPXlzxFBEGIyAmW37 +pItxDNwL1PzXHGpfOM/QZ5wjzGIwXsh8j94jDNB+TIMG4+dm4aXkolevPjJrYAeG +XZC5mvfMsntNGNFszT/8iXLwt7tlMlQQQl/2b5m6L5yffy6m39wGqTVa +-----END ENCRYPTED PRIVATE KEY----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca1.cnf b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca1.cnf new file mode 100644 index 0000000..ea43127 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca1.cnf @@ -0,0 +1,20 @@ +[ req ] +default_bits = 1024 +days = 999 +distinguished_name = req_distinguished_name +attributes = req_attributes +prompt = no +output_password = password + +[ req_distinguished_name ] +C = US +ST = CA +L = SF +O = Joyent +OU = Node.js +CN = ca1 +emailAddress = ry@tinyclouds.org + +[ req_attributes ] +challengePassword = A challenge password + diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-cert.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-cert.pem new file mode 100644 index 0000000..95e3041 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICazCCAdQCCQDVGbMO4Y2VUTANBgkqhkiG9w0BAQUFADB6MQswCQYDVQQGEwJV +UzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAO +BgNVBAsTB05vZGUuanMxDDAKBgNVBAMTA2NhMjEgMB4GCSqGSIb3DQEJARYRcnlA +dGlueWNsb3Vkcy5vcmcwHhcNMTEwMzE0MTgyOTEyWhcNMzgwNzI5MTgyOTEyWjB6 +MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQK +EwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDDAKBgNVBAMTA2NhMjEgMB4GCSqG +SIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0A +MIGJAoGBAMOOtRmmjoBZmyYreB1D1fjftMW6sEGBzfSKZRcn+kiEpqXELq21O/TV +jLJGbo+0PDqxECQyDbOgoQZXcCevFnFhdsSQOYb+0O2kAiMVYGxDtqoKM5g8wj0D +BiE6fnyZoQTDv5lEuvfG0+youCtXlxiK/9cfhikI+hVXuTgwQXt9AgMBAAEwDQYJ +KoZIhvcNAQEFBQADgYEAbMrLydFajwfZXDH3PfpKtDPCm+yV3qvEMGWLfjBdN50g +PwsZE/OIp+KJttdS+MjMG1TfwfWIqa5zGG2ctxx+fHsKH+t3NsO76Eol1p+dKqZp +PdFp2UhViMgURkrpP593AsTTO9BGaz+awSaESDHm8pO+cLaeGKQp93W0sgC0lHQ= +-----END CERTIFICATE----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-cert.srl b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-cert.srl new file mode 100644 index 0000000..00dca7d --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-cert.srl @@ -0,0 +1 @@ +8306BE7DE1BB099A diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-crl.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-crl.pem new file mode 100644 index 0000000..166df74 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-crl.pem @@ -0,0 +1,10 @@ +-----BEGIN X509 CRL----- +MIIBXTCBxzANBgkqhkiG9w0BAQQFADB6MQswCQYDVQQGEwJVUzELMAkGA1UECBMC +Q0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAOBgNVBAsTB05vZGUu +anMxDDAKBgNVBAMTA2NhMjEgMB4GCSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5v +cmcXDTExMDMxNDE4MjkxNloXDTEzMTIwNzE4MjkxNlowHDAaAgkAgwa+feG7CZoX +DTExMDMxNDE4MjkxNFowDQYJKoZIhvcNAQEEBQADgYEArRKuEkOla61fm4zlZtHe +LTXFV0Hgo21PScHAp6JqPol4rN5R9+EmUkv7gPCVVBJ9VjIgxSosHiLsDiz3zR+u +txHemhzbdIVANAIiChnFct8sEqH2eL4N6XNUIlMIR06NjNl7NbN8w8haqiearnuT +wmnaL4TThPmpbpKAF7N7JqQ= +-----END X509 CRL----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-database.txt b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-database.txt new file mode 100644 index 0000000..a0966d2 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-database.txt @@ -0,0 +1 @@ +R 380729182912Z 110314182914Z 8306BE7DE1BB099A unknown /C=US/ST=CA/L=SF/O=Joyent/OU=Node.js/CN=agent4/emailAddress=ry@tinyclouds.org diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-key.pem b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-key.pem new file mode 100644 index 0000000..49f678a --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-key.pem @@ -0,0 +1,17 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIbhsCgrscf9MCAggA +MBQGCCqGSIb3DQMHBAjz0LdWOB2KVQSCAoDu+sHRLP6v6QiEwqynnF43yP02/F+8 +Jssz6cgFPpm4MWm+xwzvMsS4ET0UYE68OTZz/QgihwH0mp/34tkUnP0HqtdbnTH1 +fkG47hb8fVSEyDQSzs1ha/u31GIachNURKyhWR5mr15AJxu2B94Z3ldNv1yjI+Fy +M1muuyx/cdkKTdpfpYr6n//wF1tup2u8Y7nkKsFus/mCuRlpItxKcRb1+nvW0s+K +3bSR8CTlEWd1Tx6Qx+ogRbP8gwqd6gelcz/Zj8nInx/Y0gTkQ4eodmLJ5iqsvC36 +SgQB5LuP12ujTyXB3Hwqb8LJ4lULERX6AYHAa7h0c+fxuFr0W9/8atplrd22hoiP +zZhgPHeH3R1fibB4M4xW2xgtbysOHj74RYlhQm1TCXLlqvzKkvT2oQ1bk7tUUqoR +ozRxVzdL9oKWLzvR4LF8S67i35JlnOPU1AhcxD2+5ywRvTpugPyCE1mZOeVLHlGW +2pdmSKbdd2gm2iSfadDPJ1DPdHLp844jRg/D6XDs4rlBnt9FjMWaXYo+ELmokoYe +Yljv2MGfy6zsb5iKcNsx+llu04xGXfZ9BAuG+aT6DLCIcDIVvE0d6asc4Lz1xZli +BrgyB8el2a/PomPbbf1vI2vtDi3Rg/pQhu/2++ODI08jI9Rudz1EltQQ4Lo38Ton +nSZegTAy6afXiEh2ty09KxMo4sWs+F2I46e5Q3zGY9b/K19bbQTFxeBf2Rfwa8BF +cf8Xs+DlcOMz5w0U2iBQfT1cV7dWLlaop7avYkpQ0fLa1pConlNhpguezcaAB8Lb +VCfpoTh6VfHRtCLokQlkq0mlKPUSlMr/JAyVdvppp/T6Abt0VirM9ILV +-----END ENCRYPTED PRIVATE KEY----- diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-serial b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-serial new file mode 100644 index 0000000..8a0f05e --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2-serial @@ -0,0 +1 @@ +01 diff --git a/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2.cnf b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2.cnf new file mode 100644 index 0000000..7af9f8c --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/tunnel/test/keys/ca2.cnf @@ -0,0 +1,33 @@ +[ ca ] +default_ca = CA_default + +[ CA_default ] +serial = ca2-serial +crl = ca2-crl.pem +database = ca2-database.txt +name_opt = CA_default +cert_opt = CA_default +default_crl_days = 999 +default_md = md5 + + +[ req ] +default_bits = 1024 +days = 999 +distinguished_name = req_distinguished_name +attributes = req_attributes +prompt = no +output_password = password + +[ req_distinguished_name ] +C = US +ST = CA +L = SF +O = Joyent +OU = Node.js +CN = ca2 +emailAddress = ry@tinyclouds.org + +[ req_attributes ] +challengePassword = A challenge password + diff --git a/packages/NoGit.0.1.0/node_modules/wrappy/LICENSE b/packages/NoGit.0.1.0/node_modules/wrappy/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/wrappy/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, 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 THIS SOFTWARE. diff --git a/packages/NoGit.0.1.0/node_modules/wrappy/README.md b/packages/NoGit.0.1.0/node_modules/wrappy/README.md new file mode 100644 index 0000000..98eab25 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/wrappy/README.md @@ -0,0 +1,36 @@ +# wrappy + +Callback wrapping utility + +## USAGE + +```javascript +var wrappy = require("wrappy") + +// var wrapper = wrappy(wrapperFunction) + +// make sure a cb is called only once +// See also: http://npm.im/once for this specific use case +var once = wrappy(function (cb) { + var called = false + return function () { + if (called) return + called = true + return cb.apply(this, arguments) + } +}) + +function printBoo () { + console.log('boo') +} +// has some rando property +printBoo.iAmBooPrinter = true + +var onlyPrintOnce = once(printBoo) + +onlyPrintOnce() // prints 'boo' +onlyPrintOnce() // does nothing + +// random property is retained! +assert.equal(onlyPrintOnce.iAmBooPrinter, true) +``` diff --git a/packages/NoGit.0.1.0/node_modules/wrappy/package.json b/packages/NoGit.0.1.0/node_modules/wrappy/package.json new file mode 100644 index 0000000..c7221e4 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/wrappy/package.json @@ -0,0 +1,77 @@ +{ + "_args": [ + [ + "wrappy@1", + "C:\\temp\\forpg\\node_modules\\inflight" + ] + ], + "_from": "wrappy@>=1.0.0 <2.0.0", + "_id": "wrappy@1.0.1", + "_inCache": true, + "_location": "/wrappy", + "_nodeVersion": "0.10.31", + "_npmUser": { + "email": "i@izs.me", + "name": "isaacs" + }, + "_npmVersion": "2.0.0", + "_phantomChildren": {}, + "_requested": { + "name": "wrappy", + "raw": "wrappy@1", + "rawSpec": "1", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/inflight", + "/once" + ], + "_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", + "_shasum": "1e65969965ccbc2db4548c6b84a6f2c5aedd4739", + "_shrinkwrap": null, + "_spec": "wrappy@1", + "_where": "C:\\temp\\forpg\\node_modules\\inflight", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/npm/wrappy/issues" + }, + "dependencies": {}, + "description": "Callback wrapping utility", + "devDependencies": { + "tap": "^0.4.12" + }, + "directories": { + "test": "test" + }, + "dist": { + "shasum": "1e65969965ccbc2db4548c6b84a6f2c5aedd4739", + "tarball": "http://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + }, + "gitHead": "006a8cbac6b99988315834c207896eed71fd069a", + "homepage": "https://github.com/npm/wrappy", + "installable": true, + "license": "ISC", + "main": "wrappy.js", + "maintainers": [ + { + "name": "isaacs", + "email": "i@izs.me" + } + ], + "name": "wrappy", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/npm/wrappy" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.1" +} diff --git a/packages/NoGit.0.1.0/node_modules/wrappy/test/basic.js b/packages/NoGit.0.1.0/node_modules/wrappy/test/basic.js new file mode 100644 index 0000000..5ed0fcd --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/wrappy/test/basic.js @@ -0,0 +1,51 @@ +var test = require('tap').test +var wrappy = require('../wrappy.js') + +test('basic', function (t) { + function onceifier (cb) { + var called = false + return function () { + if (called) return + called = true + return cb.apply(this, arguments) + } + } + onceifier.iAmOnce = {} + var once = wrappy(onceifier) + t.equal(once.iAmOnce, onceifier.iAmOnce) + + var called = 0 + function boo () { + t.equal(called, 0) + called++ + } + // has some rando property + boo.iAmBoo = true + + var onlyPrintOnce = once(boo) + + onlyPrintOnce() // prints 'boo' + onlyPrintOnce() // does nothing + t.equal(called, 1) + + // random property is retained! + t.equal(onlyPrintOnce.iAmBoo, true) + + var logs = [] + var logwrap = wrappy(function (msg, cb) { + logs.push(msg + ' wrapping cb') + return function () { + logs.push(msg + ' before cb') + var ret = cb.apply(this, arguments) + logs.push(msg + ' after cb') + } + }) + + var c = logwrap('foo', function () { + t.same(logs, [ 'foo wrapping cb', 'foo before cb' ]) + }) + c() + t.same(logs, [ 'foo wrapping cb', 'foo before cb', 'foo after cb' ]) + + t.end() +}) diff --git a/packages/NoGit.0.1.0/node_modules/wrappy/wrappy.js b/packages/NoGit.0.1.0/node_modules/wrappy/wrappy.js new file mode 100644 index 0000000..bb7e7d6 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/wrappy/wrappy.js @@ -0,0 +1,33 @@ +// Returns a wrapper function that returns a wrapped callback +// The wrapper function should do some stuff, and return a +// presumably different callback function. +// This makes sure that own properties are retained, so that +// decorations and such are not lost along the way. +module.exports = wrappy +function wrappy (fn, cb) { + if (fn && cb) return wrappy(fn)(cb) + + if (typeof fn !== 'function') + throw new TypeError('need wrapper function') + + Object.keys(fn).forEach(function (k) { + wrapper[k] = fn[k] + }) + + return wrapper + + function wrapper() { + var args = new Array(arguments.length) + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + var ret = fn.apply(this, args) + var cb = args[args.length-1] + if (typeof ret === 'function' && ret !== cb) { + Object.keys(cb).forEach(function (k) { + ret[k] = cb[k] + }) + } + return ret + } +} diff --git a/packages/NoGit.0.1.0/node_modules/xtend/.jshintrc b/packages/NoGit.0.1.0/node_modules/xtend/.jshintrc new file mode 100644 index 0000000..77887b5 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/xtend/.jshintrc @@ -0,0 +1,30 @@ +{ + "maxdepth": 4, + "maxstatements": 200, + "maxcomplexity": 12, + "maxlen": 80, + "maxparams": 5, + + "curly": true, + "eqeqeq": true, + "immed": true, + "latedef": false, + "noarg": true, + "noempty": true, + "nonew": true, + "undef": true, + "unused": "vars", + "trailing": true, + + "quotmark": true, + "expr": true, + "asi": true, + + "browser": false, + "esnext": true, + "devel": false, + "node": false, + "nonstandard": false, + + "predef": ["require", "module", "__dirname", "__filename"] +} diff --git a/packages/NoGit.0.1.0/node_modules/xtend/.npmignore b/packages/NoGit.0.1.0/node_modules/xtend/.npmignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/xtend/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/packages/NoGit.0.1.0/node_modules/xtend/LICENCE b/packages/NoGit.0.1.0/node_modules/xtend/LICENCE new file mode 100644 index 0000000..1a14b43 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/xtend/LICENCE @@ -0,0 +1,19 @@ +Copyright (c) 2012-2014 Raynos. + +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/NoGit.0.1.0/node_modules/xtend/Makefile b/packages/NoGit.0.1.0/node_modules/xtend/Makefile new file mode 100644 index 0000000..d583fcf --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/xtend/Makefile @@ -0,0 +1,4 @@ +browser: + node ./support/compile + +.PHONY: browser \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/xtend/README.md b/packages/NoGit.0.1.0/node_modules/xtend/README.md new file mode 100644 index 0000000..093cb29 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/xtend/README.md @@ -0,0 +1,32 @@ +# xtend + +[![browser support][3]][4] + +[![locked](http://badges.github.io/stability-badges/dist/locked.svg)](http://github.com/badges/stability-badges) + +Extend like a boss + +xtend is a basic utility library which allows you to extend an object by appending all of the properties from each object in a list. When there are identical properties, the right-most property takes precedence. + +## Examples + +```js +var extend = require("xtend") + +// extend returns a new object. Does not mutate arguments +var combination = extend({ + a: "a", + b: 'c' +}, { + b: "b" +}) +// { a: "a", b: "b" } +``` + +## Stability status: Locked + +## MIT Licenced + + + [3]: http://ci.testling.com/Raynos/xtend.png + [4]: http://ci.testling.com/Raynos/xtend diff --git a/packages/NoGit.0.1.0/node_modules/xtend/immutable.js b/packages/NoGit.0.1.0/node_modules/xtend/immutable.js new file mode 100644 index 0000000..5b76015 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/xtend/immutable.js @@ -0,0 +1,17 @@ +module.exports = extend + +function extend() { + var target = {} + + for (var i = 0; i < arguments.length; i++) { + var source = arguments[i] + + for (var key in source) { + if (source.hasOwnProperty(key)) { + target[key] = source[key] + } + } + } + + return target +} diff --git a/packages/NoGit.0.1.0/node_modules/xtend/mutable.js b/packages/NoGit.0.1.0/node_modules/xtend/mutable.js new file mode 100644 index 0000000..a34475e --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/xtend/mutable.js @@ -0,0 +1,15 @@ +module.exports = extend + +function extend(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] + + for (var key in source) { + if (source.hasOwnProperty(key)) { + target[key] = source[key] + } + } + } + + return target +} diff --git a/packages/NoGit.0.1.0/node_modules/xtend/package.json b/packages/NoGit.0.1.0/node_modules/xtend/package.json new file mode 100644 index 0000000..81838ee --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/xtend/package.json @@ -0,0 +1,112 @@ +{ + "_args": [ + [ + "xtend@^4.0.0", + "C:\\temp\\forpg\\node_modules\\tar-stream" + ] + ], + "_from": "xtend@>=4.0.0 <5.0.0", + "_id": "xtend@4.0.0", + "_inCache": true, + "_location": "/xtend", + "_npmUser": { + "email": "raynos2@gmail.com", + "name": "raynos" + }, + "_npmVersion": "1.4.15", + "_phantomChildren": {}, + "_requested": { + "name": "xtend", + "raw": "xtend@^4.0.0", + "rawSpec": "^4.0.0", + "scope": null, + "spec": ">=4.0.0 <5.0.0", + "type": "range" + }, + "_requiredBy": [ + "/tar-stream" + ], + "_resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz", + "_shasum": "8bc36ff87aedbe7ce9eaf0bca36b2354a743840f", + "_shrinkwrap": null, + "_spec": "xtend@^4.0.0", + "_where": "C:\\temp\\forpg\\node_modules\\tar-stream", + "author": { + "email": "raynos2@gmail.com", + "name": "Raynos" + }, + "bugs": { + "email": "raynos2@gmail.com", + "url": "https://github.com/Raynos/xtend/issues" + }, + "contributors": [ + { + "name": "Jake Verbaten" + }, + { + "name": "Matt Esch" + } + ], + "dependencies": {}, + "description": "extend like a boss", + "devDependencies": { + "tape": "~1.1.0" + }, + "directories": {}, + "dist": { + "shasum": "8bc36ff87aedbe7ce9eaf0bca36b2354a743840f", + "tarball": "http://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" + }, + "engines": { + "node": ">=0.4" + }, + "gitHead": "94a95d76154103290533b2c55ffa0fe4be16bfef", + "homepage": "https://github.com/Raynos/xtend", + "installable": true, + "keywords": [ + "array", + "extend", + "merge", + "object", + "options", + "opts" + ], + "licenses": [ + { + "type": "MIT", + "url": "http://github.com/raynos/xtend/raw/master/LICENSE" + } + ], + "main": "immutable", + "maintainers": [ + { + "name": "raynos", + "email": "raynos2@gmail.com" + } + ], + "name": "xtend", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/Raynos/xtend.git" + }, + "scripts": { + "test": "node test" + }, + "testling": { + "browsers": [ + "chrome/22..latest", + "chrome/canary", + "firefox/16..latest", + "firefox/nightly", + "ie/7..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "opera/12..latest", + "opera/next", + "safari/5.1..latest" + ], + "files": "test.js" + }, + "version": "4.0.0" +} diff --git a/packages/NoGit.0.1.0/node_modules/xtend/test.js b/packages/NoGit.0.1.0/node_modules/xtend/test.js new file mode 100644 index 0000000..3369d79 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/xtend/test.js @@ -0,0 +1,63 @@ +var test = require("tape") +var extend = require("./") +var mutableExtend = require("./mutable") + +test("merge", function(assert) { + var a = { a: "foo" } + var b = { b: "bar" } + + assert.deepEqual(extend(a, b), { a: "foo", b: "bar" }) + assert.end() +}) + +test("replace", function(assert) { + var a = { a: "foo" } + var b = { a: "bar" } + + assert.deepEqual(extend(a, b), { a: "bar" }) + assert.end() +}) + +test("undefined", function(assert) { + var a = { a: undefined } + var b = { b: "foo" } + + assert.deepEqual(extend(a, b), { a: undefined, b: "foo" }) + assert.deepEqual(extend(b, a), { a: undefined, b: "foo" }) + assert.end() +}) + +test("handle 0", function(assert) { + var a = { a: "default" } + var b = { a: 0 } + + assert.deepEqual(extend(a, b), { a: 0 }) + assert.deepEqual(extend(b, a), { a: "default" }) + assert.end() +}) + +test("is immutable", function (assert) { + var record = {} + + extend(record, { foo: "bar" }) + assert.equal(record.foo, undefined) + assert.end() +}) + +test("null as argument", function (assert) { + var a = { foo: "bar" } + var b = null + var c = void 0 + + assert.deepEqual(extend(b, a, c), { foo: "bar" }) + assert.end() +}) + +test("mutable", function (assert) { + var a = { foo: "bar" } + + mutableExtend(a, { bar: "baz" }) + + assert.equal(a.bar, "baz") + assert.end() +}) diff --git a/packages/NoGit.0.1.0/node_modules/zip-stream/LICENSE b/packages/NoGit.0.1.0/node_modules/zip-stream/LICENSE new file mode 100644 index 0000000..56420a6 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/zip-stream/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2014 Chris Talkington, contributors. + +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. \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/zip-stream/README.md b/packages/NoGit.0.1.0/node_modules/zip-stream/README.md new file mode 100644 index 0000000..91f8ba5 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/zip-stream/README.md @@ -0,0 +1,105 @@ +# zip-stream v0.5.2 [![Build Status](https://travis-ci.org/archiverjs/node-zip-stream.svg?branch=master)](https://travis-ci.org/archiverjs/node-zip-stream) + +zip-stream is a streaming zip archive generator based on the `ZipArchiveOutputStream` prototype found in the [compress-commons](https://www.npmjs.org/package/compress-commons) project. + +It was originally created to be a successor to [zipstream](https://npmjs.org/package/zipstream). + +[![NPM](https://nodei.co/npm/zip-stream.png)](https://nodei.co/npm/zip-stream/) + +### Install + +```bash +npm install zip-stream --save +``` + +You can also use `npm install https://github.com/archiverjs/node-zip-stream/archive/master.tar.gz` to test upcoming versions. + +### Usage + +This module is meant to be wrapped internally by other modules and therefore lacks any queue management. This means you have to wait until the previous entry has been fully consumed to add another. Nested callbacks should be used to add multiple entries. There are modules like [async](https://npmjs.org/package/async) that ease the so called "callback hell". + +If you want a module that handles entry queueing and much more, you should check out [archiver](https://npmjs.org/package/archiver) which uses this module internally. + +```js +var packer = require('zip-stream'); +var archive = new packer(); // OR new packer(options) + +archive.on('error', function(err) { + throw err; +}); + +// pipe archive where you want it (ie fs, http, etc) +// listen to the destination's end, close, or finish event + +archive.entry('string contents', { name: 'string.txt' }, function(err, entry) { + if (err) throw err; + archive.entry(null, { name: 'directory/' }, function(err, entry) { + if (err) throw err; + archive.finish(); + }); +}); +``` + +### Instance API + +#### getBytesWritten() + +Returns the current number of bytes written to this stream. + +#### entry(input, data, callback(err, data)) + +Appends an input source (text string, buffer, or stream) to the instance. When the instance has received, processed, and emitted the input, the callback is fired. + +#### finish() + +Finalizes the instance. You should listen to the destination stream's `end`/`close`/`finish` event to know when all output has been safely consumed. (`finalize` is aliased for back-compat) + +### Instance Options + +#### comment `string` + +Sets the zip comment. + +#### store `boolean` + +If true, all entry contents will be archived without compression by default. + +#### zlib `object` + +Passed to node's [zlib](http://nodejs.org/api/zlib.html#zlib_options) module to control compression. Options may vary by node version. + +### Entry Data + +#### name `string` `required` + +Sets the entry name including internal path. + +#### type `string` + +Sets the entry type. Defaults to `file` or `directory` if name ends with trailing slash. + +#### date `string|Date` + +Sets the entry date. This can be any valid date string or instance. Defaults to current time in locale. + +#### store `boolean` + +If true, entry contents will be archived without compression. + +#### comment `string` + +Sets the entry comment. + +#### mode `number` + +Sets the entry permissions. + +## Things of Interest + +- [Releases](https://github.com/archiverjs/node-zip-stream/releases) +- [Contributing](https://github.com/archiverjs/node-zip-stream/blob/master/CONTRIBUTING.md) +- [MIT License](https://github.com/archiverjs/node-zip-stream/blob/master/LICENSE-MIT) + +## Credits + +Concept inspired by Antoine van Wel's [zipstream](https://npmjs.org/package/zipstream) module, which is no longer being updated. \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/zip-stream/lib/util/index.js b/packages/NoGit.0.1.0/node_modules/zip-stream/lib/util/index.js new file mode 100644 index 0000000..c8b3f73 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/zip-stream/lib/util/index.js @@ -0,0 +1,103 @@ +/** + * node-zip-stream + * + * Copyright (c) 2014 Chris Talkington, contributors. + * Licensed under the MIT license. + * https://github.com/archiverjs/node-zip-stream/blob/master/LICENSE-MIT + */ +var fs = require('fs'); +var path = require('path'); + +var Stream = require('stream').Stream; +var PassThrough = require('readable-stream').PassThrough; + +var _ = require('lodash'); + +var util = module.exports = {}; + +util.convertDateTimeDos = function(input) { + return new Date( + ((input >> 25) & 0x7f) + 1980, + ((input >> 21) & 0x0f) - 1, + (input >> 16) & 0x1f, + (input >> 11) & 0x1f, + (input >> 5) & 0x3f, + (input & 0x1f) << 1 + ); +}; + +util.dateify = function(dateish) { + dateish = dateish || new Date(); + + if (dateish instanceof Date) { + dateish = dateish; + } else if (typeof dateish === 'string') { + dateish = new Date(dateish); + } else { + dateish = new Date(); + } + + return dateish; +}; + +// this is slightly different from lodash version +util.defaults = function(object, source, guard) { + var args = arguments; + args[0] = args[0] || {}; + + return _.defaults.apply(_, args); +}; + +util.dosDateTime = function(d, utc) { + d = (d instanceof Date) ? d : util.dateify(d); + utc = utc || false; + + var year = utc ? d.getUTCFullYear() : d.getFullYear(); + + if (year < 1980) { + return 2162688; // 1980-1-1 00:00:00 + } else if (year >= 2044) { + return 2141175677; // 2043-12-31 23:59:58 + } + + var val = { + year: year, + month: utc ? d.getUTCMonth() : d.getMonth(), + date: utc ? d.getUTCDate() : d.getDate(), + hours: utc ? d.getUTCHours() : d.getHours(), + minutes: utc ? d.getUTCMinutes() : d.getMinutes(), + seconds: utc ? d.getUTCSeconds() : d.getSeconds() + }; + + return ((val.year-1980) << 25) | ((val.month+1) << 21) | (val.date << 16) | + (val.hours << 11) | (val.minutes << 5) | (val.seconds / 2); +}; + +util.isStream = function(source) { + return source instanceof Stream; +}; + +util.normalizeInputSource = function(source) { + if (source === null) { + return new Buffer(0); + } else if (typeof source === 'string') { + return new Buffer(source); + } else if (util.isStream(source) && !source._readableState) { + var normalized = new PassThrough(); + source.pipe(normalized); + + return normalized; + } + + return source; +}; + +util.sanitizePath = function() { + var filepath = path.join.apply(path, arguments); + return filepath.replace(/\\/g, '/').replace(/:/g, '').replace(/^\/+/, ''); +}; + +util.unixifyPath = function() { + var filepath = path.join.apply(path, arguments); + return filepath.replace(/\\/g, '/'); +}; \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/zip-stream/lib/zip-stream.js b/packages/NoGit.0.1.0/node_modules/zip-stream/lib/zip-stream.js new file mode 100644 index 0000000..358567e --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/zip-stream/lib/zip-stream.js @@ -0,0 +1,110 @@ +/** + * node-zip-stream + * + * Copyright (c) 2014 Chris Talkington, contributors. + * Licensed under the MIT license. + * https://github.com/archiverjs/node-zip-stream/blob/master/LICENSE-MIT + */ +var inherits = require('util').inherits; + +var ZipArchiveOutputStream = require('compress-commons').ZipArchiveOutputStream; +var ZipArchiveEntry = require('compress-commons').ZipArchiveEntry; + +var util = require('./util'); + +var ZipStream = module.exports = function(options) { + if (!(this instanceof ZipStream)) { + return new ZipStream(options); + } + + options = this.options = options || {}; + options.zlib = options.zlib || {}; + + ZipArchiveOutputStream.call(this, options); + + if (typeof options.level === 'number' && options.level >= 0) { + options.zlib.level = options.level; + delete options.level; + } + + if (options.zlib.level && options.zlib.level === 0) { + options.store = true; + } + + if (options.comment && options.comment.length > 0) { + this.setComment(options.comment); + } +}; + +inherits(ZipStream, ZipArchiveOutputStream); + +ZipStream.prototype._normalizeFileData = function(data) { + data = util.defaults(data, { + type: 'file', + name: null, + date: null, + mode: null, + store: this.options.store, + comment: '' + }); + + var isDir = data.type === 'directory'; + + if (data.name) { + data.name = util.sanitizePath(data.name); + + if (data.name.slice(-1) === '/') { + isDir = true; + data.type = 'directory'; + } else if (isDir) { + data.name += '/'; + } + } + + if (isDir) { + data.store = true; + } + + data.date = util.dateify(data.date); + + return data; +}; + +ZipStream.prototype.entry = function(source, data, callback) { + if (typeof callback !== 'function') { + callback = this._emitErrorCallback.bind(this); + } + + data = this._normalizeFileData(data); + + if (data.type !== 'file' && data.type !== 'directory') { + callback(new Error(data.type + ' entries not currently supported')); + return; + } + + if (typeof data.name !== 'string' || data.name.length === 0) { + callback(new Error('entry name must be a non-empty string value')); + return; + } + + var entry = new ZipArchiveEntry(data.name); + entry.setTime(data.date); + + if (data.store) { + entry.setMethod(0); + } + + if (data.comment.length > 0) { + entry.setComment(data.comment); + } + + if (typeof data.mode === 'number') { + entry.setUnixMode(data.mode); + } + + return ZipArchiveOutputStream.prototype.entry.call(this, entry, source, callback); +}; + +ZipStream.prototype.finalize = function() { + this.finish(); +}; \ No newline at end of file diff --git a/packages/NoGit.0.1.0/node_modules/zip-stream/package.json b/packages/NoGit.0.1.0/node_modules/zip-stream/package.json new file mode 100644 index 0000000..ad83d54 --- /dev/null +++ b/packages/NoGit.0.1.0/node_modules/zip-stream/package.json @@ -0,0 +1,95 @@ +{ + "_args": [ + [ + "zip-stream@~0.5.0", + "C:\\temp\\forpg\\node_modules\\archiver" + ] + ], + "_from": "zip-stream@>=0.5.0 <0.6.0", + "_id": "zip-stream@0.5.2", + "_inCache": true, + "_location": "/zip-stream", + "_nodeVersion": "0.12.2", + "_npmUser": { + "email": "chris@christalkington.com", + "name": "ctalkington" + }, + "_npmVersion": "2.8.3", + "_phantomChildren": {}, + "_requested": { + "name": "zip-stream", + "raw": "zip-stream@~0.5.0", + "rawSpec": "~0.5.0", + "scope": null, + "spec": ">=0.5.0 <0.6.0", + "type": "range" + }, + "_requiredBy": [ + "/archiver" + ], + "_resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-0.5.2.tgz", + "_shasum": "32dcbc506d0dab4d21372625bd7ebaac3c2fff56", + "_shrinkwrap": null, + "_spec": "zip-stream@~0.5.0", + "_where": "C:\\temp\\forpg\\node_modules\\archiver", + "author": { + "name": "Chris Talkington", + "url": "http://christalkington.com/" + }, + "bugs": { + "url": "https://github.com/archiverjs/node-zip-stream/issues" + }, + "dependencies": { + "compress-commons": "~0.2.0", + "lodash": "~3.2.0", + "readable-stream": "~1.0.26" + }, + "description": "a streaming zip archive generator.", + "devDependencies": { + "chai": "~2.0.0", + "mkdirp": "~0.5.0", + "mocha": "~2.1.0", + "rimraf": "~2.2.8" + }, + "directories": {}, + "dist": { + "shasum": "32dcbc506d0dab4d21372625bd7ebaac3c2fff56", + "tarball": "http://registry.npmjs.org/zip-stream/-/zip-stream-0.5.2.tgz" + }, + "engines": { + "node": ">= 0.8.0" + }, + "files": [ + "lib" + ], + "gitHead": "e1ffab4835feb864ec139493a8a92c7d9782f4ac", + "homepage": "https://github.com/archiverjs/node-zip-stream", + "installable": true, + "keywords": [ + "archive", + "stream", + "zip", + "zip-stream" + ], + "license": "MIT", + "main": "lib/zip-stream.js", + "maintainers": [ + { + "name": "ctalkington", + "email": "chris@christalkington.com" + } + ], + "name": "zip-stream", + "optionalDependencies": {}, + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/archiverjs/node-zip-stream.git" + }, + "scripts": { + "test": "mocha --reporter dot" + }, + "version": "0.5.2" +} diff --git a/packages/NoGit.0.1.0/readme.txt b/packages/NoGit.0.1.0/readme.txt new file mode 100644 index 0000000..ab90897 --- /dev/null +++ b/packages/NoGit.0.1.0/readme.txt @@ -0,0 +1,55 @@ +NoGit 0.1.0 +=========== + +NoGit is a local git replacement for npm and bower, powered by js-git and Node.js. + +This git tool contains only tiny subset of git features for npm and bower, so not for ordinary use. + + +Proxy settings +-------------- + +If NoGit should use a proxy for remote connections, use one of the next solutions: + + 1) Set 'HTTP_PROXY' and/or 'HTTPS_PROXY' environment variables to the proxy URL. For Node.js + delivered via NuGet, edit "~/.bin/node.cmd" file: + + SET HTTP_PROXY=http://1:1@127.0.0.1:8888 + SET HTTPS_PROXY=http://1:1@127.0.0.1:8888 + + where "http://1:1@127.0.0.1:8888" is the proxy at "127.0.0.1:8888" with username "1" and + password "1" used for authentication. + + Use this solution to set single proxy settings for all environments used in your project. + This is a recommended solution, it will also force bower and npm to use the proxy. + + 2) Add next lines to your local '%USERPROFILE%\.gitconfig' file: + + [http] + proxy = http://1:1@127.0.0.1:8888 + [https] + proxy = http://1:1@127.0.0.1:8888 + + where "http://1:1@127.0.0.1:8888" is the proxy at "127.0.0.1:8888" with username "1" and + password "1" used for authentication. + + Use this solution to set proxy settings for single environment only. + + 3) If your proxy only doesn't allow 'git://' URLs, you can add next lines to your local + '%USERPROFILE%\.gitconfig' file: + + [url "https://"] + insteadOf = git:// + + Then NoGit will use 'https://' URLs everywhere to work with remotes. Note, that for + proxy settings in solutions 1) and 2), NoGit will also use 'https://' URLs everywhere. + + +Support +------- + +Post issues and ideas to https://github.com/whyleee/nogit/issues. + + +------------------------------------------------------ +© 2015 Pavel Nezhencev \ No newline at end of file diff --git a/packages/NoGit.0.1.0/tools/bin_tools.ps1 b/packages/NoGit.0.1.0/tools/bin_tools.ps1 new file mode 100644 index 0000000..4818159 --- /dev/null +++ b/packages/NoGit.0.1.0/tools/bin_tools.ps1 @@ -0,0 +1,64 @@ +Function Update-BinPaths($cmd) { + $cmd_name = [IO.Path]::GetFileName($cmd) + $bin_name = [IO.Path]::GetDirectoryName($cmd) + + $repo_rel_path = '..\..\packages' + $repo_rel_regex = $repo_rel_path.Replace('\', '\\').Replace('.', '\.') + $bin_dir = Join-Path (gi $project.FullName).Directory.FullName $bin_name + $repo_dir = (gi $installPath).Parent.FullName + + $source = Join-Path $installPath "content\$cmd" + $target = Join-Path $bin_dir $cmd_name + + cd $bin_dir + + if (($repo_dir | rvpa -relative) -eq $repo_rel_path) { + return; + } + + (gc $source) | % {$_ -replace $repo_rel_regex, ($repo_dir | rvpa -relative)} | sc $source + cp $source $target +} + +Function Add-BinToPath($cmd) { + $bin_name = [IO.Path]::GetDirectoryName($cmd) + $path = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::User) + + if ($path -notmatch ";$bin_name") { + [Environment]::SetEnvironmentVariable('Path', "$path;$bin_name", [EnvironmentVariableTarget]::User) + } +} + +Function Set-BuildAction($cmd, $action) { + $pi = Get-ProjectItem $cmd + if ($pi) { + $num = [int]2 + if ($action -eq 'None') { + $num = [int]0 + } elseif ($action -eq 'Compile') { + $num = [int]1 + } elseif ($action -eq 'Embedded Resource') { + $num = [int]3 + } + + $pi.Properties.Item('BuildAction').Value = $num; + } +} + +Function Delete-Bin($cmd) { + $pi = Get-ProjectItem $cmd + if ($pi) { + $pi.Delete() + } +} + +Function Get-ProjectItem($cmd) { + $cmd_name = [IO.Path]::GetFileName($cmd) + $bin_name = [IO.Path]::GetDirectoryName($cmd) + + $pi = $project.ProjectItems.Item($bin_name) + if ($pi) { + $pi = $pi.ProjectItems.Item($cmd_name) + } + return $pi +} \ No newline at end of file diff --git a/packages/NoGit.0.1.0/tools/install.ps1 b/packages/NoGit.0.1.0/tools/install.ps1 new file mode 100644 index 0000000..9fb2a2f --- /dev/null +++ b/packages/NoGit.0.1.0/tools/install.ps1 @@ -0,0 +1,7 @@ +param($installPath, $toolsPath, $package, $project) + +. (Join-Path $toolsPath 'bin_tools.ps1') + +$cmd = '.bin\git.cmd' +Set-BuildAction $cmd 'None' +Update-BinPaths $cmd \ No newline at end of file diff --git a/packages/NoGit.0.1.0/tools/uninstall.ps1 b/packages/NoGit.0.1.0/tools/uninstall.ps1 new file mode 100644 index 0000000..95233ab --- /dev/null +++ b/packages/NoGit.0.1.0/tools/uninstall.ps1 @@ -0,0 +1,6 @@ +param($installPath, $toolsPath, $package, $project) + +. (Join-Path $toolsPath 'bin_tools.ps1') + +$cmd = '.bin\git.cmd' +Delete-Bin $cmd \ No newline at end of file diff --git a/packages/Node.js.5.3.0/Node.js.5.3.0.nupkg b/packages/Node.js.5.3.0/Node.js.5.3.0.nupkg new file mode 100644 index 0000000..a5b1158 Binary files /dev/null and b/packages/Node.js.5.3.0/Node.js.5.3.0.nupkg differ diff --git a/packages/Node.js.5.3.0/content/.bin/node.cmd b/packages/Node.js.5.3.0/content/.bin/node.cmd new file mode 100644 index 0000000..e57b1de --- /dev/null +++ b/packages/Node.js.5.3.0/content/.bin/node.cmd @@ -0,0 +1,3 @@ +@echo off +SET PATH=%PATH%;%~dp0 +"%~dp0..\..\packages\Node.js.5.3.0\node.exe" %* \ No newline at end of file diff --git a/packages/Node.js.5.3.0/node.exe b/packages/Node.js.5.3.0/node.exe new file mode 100644 index 0000000..e8199f7 Binary files /dev/null and b/packages/Node.js.5.3.0/node.exe differ diff --git a/packages/Node.js.5.3.0/readme.txt b/packages/Node.js.5.3.0/readme.txt new file mode 100644 index 0000000..cc410df --- /dev/null +++ b/packages/Node.js.5.3.0/readme.txt @@ -0,0 +1,50 @@ +Node.js 5.3.0 +============= + +Node.js is a server-side JavaScript environment that uses an asynchronous event-driven model. + + +Installation overview +--------------------- + +Node.js cmd is installed into .bin dir in your project. Node.js itself is deployed by NuGet, +so there is no need to install it locally on dev machines or build servers. + +If you're using NuGet restore, it's safe to ignore NuGet "packages" dir in Git (or in other +VCS), to reduce the size of repository. + + +Automation +---------- + +Use ".bin\node" command to run Node.js in your build scripts. For example, here is a simple +MsBuild target to minify your scripts using Require.js optimizer: + + + + + + +Daily usage +----------- + +If you add ".bin" to PATH environment variable, you can call "node" directly from your +project root dir. + +For example, if you installed Node.js to "MySite.Web" project of "MySite" solution, you can +run it directly in the command prompt from the project dir: + +D:\Projects\MySite\MySite.Web> node Scripts\server.js + +Note: if PATH was changed, restart your command prompt to refresh environment variables. + + +Docs +---- + +Full Node.js documentation is available at https://nodejs.org/en/docs/ +Post Nuget package issues or contribute at https://github.com/whyleee/nuget-node-tools + + +------------------------------------------------------ +© 2015 Node.js Foundation \ No newline at end of file diff --git a/packages/Node.js.5.3.0/tools/bin_tools.ps1 b/packages/Node.js.5.3.0/tools/bin_tools.ps1 new file mode 100644 index 0000000..fc618c5 --- /dev/null +++ b/packages/Node.js.5.3.0/tools/bin_tools.ps1 @@ -0,0 +1,68 @@ +Function Update-BinPaths($cmd) { + $cmd_name = [IO.Path]::GetFileName($cmd) + $bin_name = [IO.Path]::GetDirectoryName($cmd) + + $repo_rel_path = '..\..\packages' + $repo_rel_regex = $repo_rel_path.Replace('\', '\\').Replace('.', '\.') + $bin_dir = Join-Path (gi $project.FullName).Directory.FullName $bin_name + $repo_dir = (gi $installPath).Parent.FullName + + $source = Join-Path $installPath "content\$cmd" + $target = Join-Path $bin_dir $cmd_name + + cd $bin_dir + + if (($repo_dir | rvpa -relative) -eq $repo_rel_path) { + return; + } + + (gc $source) | % {$_ -replace $repo_rel_regex, ($repo_dir | rvpa -relative)} | sc $source + cp $source $target +} + +Function Add-BinToPath($cmd) { + $bin_name = [IO.Path]::GetDirectoryName($cmd) + $path = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::User) + + if ($path -notmatch ";$bin_name") { + [Environment]::SetEnvironmentVariable('Path', "$path;$bin_name", [EnvironmentVariableTarget]::User) + } +} + +Function Set-BuildAction($cmd, $action) { + $pi = Get-ProjectItem $cmd + if ($pi) { + $num = [int]2 + if ($action -eq 'None') { + $num = [int]0 + } elseif ($action -eq 'Compile') { + $num = [int]1 + } elseif ($action -eq 'Embedded Resource') { + $num = [int]3 + } + + $pi.Properties.Item('BuildAction').Value = $num; + } +} + +Function Delete-Bin($cmd) { + $pi = Get-ProjectItem $cmd + if ($pi) { + $pi.Delete() + } +} + +Function Get-ProjectItem($cmd) { + $cmd_name = [IO.Path]::GetFileName($cmd) + $bin_name = [IO.Path]::GetDirectoryName($cmd) + + try { + $pi = $project.ProjectItems.Item($bin_name) + if ($pi) { + $pi = $pi.ProjectItems.Item($cmd_name) + } + return $pi + } catch { + return $null + } +} \ No newline at end of file diff --git a/packages/Node.js.5.3.0/tools/install.ps1 b/packages/Node.js.5.3.0/tools/install.ps1 new file mode 100644 index 0000000..ce59852 --- /dev/null +++ b/packages/Node.js.5.3.0/tools/install.ps1 @@ -0,0 +1,7 @@ +param($installPath, $toolsPath, $package, $project) + +. (Join-Path $toolsPath 'bin_tools.ps1') + +$cmd = '.bin\node.cmd' +Set-BuildAction $cmd 'None' +Update-BinPaths $cmd \ No newline at end of file diff --git a/packages/Node.js.5.3.0/tools/uninstall.ps1 b/packages/Node.js.5.3.0/tools/uninstall.ps1 new file mode 100644 index 0000000..9a25ed1 --- /dev/null +++ b/packages/Node.js.5.3.0/tools/uninstall.ps1 @@ -0,0 +1,6 @@ +param($installPath, $toolsPath, $package, $project) + +. (Join-Path $toolsPath 'bin_tools.ps1') + +$cmd = '.bin\node.cmd' +Delete-Bin $cmd \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/System.Linq.Queryable.4.3.0.nupkg b/packages/System.Linq.Queryable.4.3.0/System.Linq.Queryable.4.3.0.nupkg new file mode 100644 index 0000000..ebc4658 Binary files /dev/null and b/packages/System.Linq.Queryable.4.3.0/System.Linq.Queryable.4.3.0.nupkg differ diff --git a/packages/System.Linq.Queryable.4.3.0/ThirdPartyNotices.txt b/packages/System.Linq.Queryable.4.3.0/ThirdPartyNotices.txt new file mode 100644 index 0000000..55cfb20 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ThirdPartyNotices.txt @@ -0,0 +1,31 @@ +This Microsoft .NET Library may incorporate components from the projects listed +below. Microsoft licenses these components under the Microsoft .NET Library +software license terms. The original copyright notices and the licenses under +which Microsoft received such components are set forth below for informational +purposes only. Microsoft reserves all rights not expressly granted herein, +whether by implication, estoppel or otherwise. + +1. .NET Core (https://github.com/dotnet/core/) + +.NET Core +Copyright (c) .NET Foundation and Contributors + +The MIT License (MIT) + +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. \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/dotnet_library_license.txt b/packages/System.Linq.Queryable.4.3.0/dotnet_library_license.txt new file mode 100644 index 0000000..92b6c44 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/dotnet_library_license.txt @@ -0,0 +1,128 @@ + +MICROSOFT SOFTWARE LICENSE TERMS + + +MICROSOFT .NET LIBRARY + +These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft + +· updates, + +· supplements, + +· Internet-based services, and + +· support services + +for this software, unless other terms accompany those items. If so, those terms apply. + +BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE. + + +IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW. + +1. INSTALLATION AND USE RIGHTS. + +a. Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs. + +b. Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only. + +2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS. + +a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below. + +i. Right to Use and Distribute. + +· You may copy and distribute the object code form of the software. + +· Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs. + +ii. Distribution Requirements. For any Distributable Code you distribute, you must + +· add significant primary functionality to it in your programs; + +· require distributors and external end users to agree to terms that protect it at least as much as this agreement; + +· display your valid copyright notice on your programs; and + +· indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs. + +iii. Distribution Restrictions. You may not + +· alter any copyright, trademark or patent notice in the Distributable Code; + +· use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft; + +· include Distributable Code in malicious, deceptive or unlawful programs; or + +· modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that + +· the code be disclosed or distributed in source code form; or + +· others have the right to modify it. + +3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not + +· work around any technical limitations in the software; + +· reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation; + +· publish the software for others to copy; + +· rent, lease or lend the software; + +· transfer the software or this agreement to any third party; or + +· use the software for commercial software hosting services. + +4. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software. + +5. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes. + +6. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting. + +7. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it. + +8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services. + +9. APPLICABLE LAW. + +a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort. + +b. Outside the United States. If you acquired the software in any other country, the laws of that country apply. + +10. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so. + +11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + +FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS. + +12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES. + +This limitation applies to + +· anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and + +· claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law. + +It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages. + +Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French. + +Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français. + +EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues. + +LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices. + +Cette limitation concerne : + +· tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et + +· les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur. + +Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard. + +EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas. + + diff --git a/packages/System.Linq.Queryable.4.3.0/lib/monoandroid10/_._ b/packages/System.Linq.Queryable.4.3.0/lib/monoandroid10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/lib/monotouch10/_._ b/packages/System.Linq.Queryable.4.3.0/lib/monotouch10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/lib/net45/_._ b/packages/System.Linq.Queryable.4.3.0/lib/net45/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/lib/netcore50/System.Linq.Queryable.dll b/packages/System.Linq.Queryable.4.3.0/lib/netcore50/System.Linq.Queryable.dll new file mode 100644 index 0000000..efbfd0d Binary files /dev/null and b/packages/System.Linq.Queryable.4.3.0/lib/netcore50/System.Linq.Queryable.dll differ diff --git a/packages/System.Linq.Queryable.4.3.0/lib/netstandard1.3/System.Linq.Queryable.dll b/packages/System.Linq.Queryable.4.3.0/lib/netstandard1.3/System.Linq.Queryable.dll new file mode 100644 index 0000000..efbfd0d Binary files /dev/null and b/packages/System.Linq.Queryable.4.3.0/lib/netstandard1.3/System.Linq.Queryable.dll differ diff --git a/packages/System.Linq.Queryable.4.3.0/lib/portable-net45+win8+wp8+wpa81/_._ b/packages/System.Linq.Queryable.4.3.0/lib/portable-net45+win8+wp8+wpa81/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/lib/win8/_._ b/packages/System.Linq.Queryable.4.3.0/lib/win8/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/lib/wp80/_._ b/packages/System.Linq.Queryable.4.3.0/lib/wp80/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/lib/wpa81/_._ b/packages/System.Linq.Queryable.4.3.0/lib/wpa81/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/lib/xamarinios10/_._ b/packages/System.Linq.Queryable.4.3.0/lib/xamarinios10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/lib/xamarinmac20/_._ b/packages/System.Linq.Queryable.4.3.0/lib/xamarinmac20/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/lib/xamarintvos10/_._ b/packages/System.Linq.Queryable.4.3.0/lib/xamarintvos10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/lib/xamarinwatchos10/_._ b/packages/System.Linq.Queryable.4.3.0/lib/xamarinwatchos10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/ref/monoandroid10/_._ b/packages/System.Linq.Queryable.4.3.0/ref/monoandroid10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/ref/monotouch10/_._ b/packages/System.Linq.Queryable.4.3.0/ref/monotouch10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/ref/net45/_._ b/packages/System.Linq.Queryable.4.3.0/ref/net45/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netcore50/System.Linq.Queryable.dll b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/System.Linq.Queryable.dll new file mode 100644 index 0000000..5532906 Binary files /dev/null and b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/System.Linq.Queryable.dll differ diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netcore50/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/System.Linq.Queryable.xml new file mode 100644 index 0000000..5cd612c --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/System.Linq.Queryable.xml @@ -0,0 +1,1282 @@ + + + + System.Linq.Queryable + + + + Represents an expression tree and provides functionality to execute the expression tree after rewriting it. + + + Initializes a new instance of the class. + + + Represents an expression tree and provides functionality to execute the expression tree after rewriting it. + The data type of the value that results from executing the expression tree. + + + Initializes a new instance of the class. + An expression tree to associate with the new instance. + + + Represents an as an data source. + + + Initializes a new instance of the class. + + + Represents an collection as an data source. + The type of the data in the collection. + + + Initializes a new instance of the class and associates it with an collection. + A collection to associate with the new instance. + + + Initializes a new instance of the class and associates the instance with an expression tree. + An expression tree to associate with the new instance. + + + Returns an enumerator that can iterate through the associated collection, or, if it is null, through the collection that results from rewriting the associated expression tree as a query on an data source and executing it. + An enumerator that can be used to iterate through the associated data source. + + + Returns an enumerator that can iterate through the associated collection, or, if it is null, through the collection that results from rewriting the associated expression tree as a query on an data source and executing it. + An enumerator that can be used to iterate through the associated data source. + + + Gets the type of the data in the collection that this instance represents. + The type of the data in the collection that this instance represents. + + + Gets the expression tree that is associated with or that represents this instance. + The expression tree that is associated with or that represents this instance. + + + Gets the query provider that is associated with this instance. + The query provider that is associated with this instance. + + + Constructs a new object and associates it with a specified expression tree that represents an collection of data. + An EnumerableQuery object that is associated with . + An expression tree to execute. + The type of the data in the collection that represents. + + + Constructs a new object and associates it with a specified expression tree that represents an collection of data. + An object that is associated with . + An expression tree that represents an collection of data. + + + Executes an expression after rewriting it to call methods instead of methods on any enumerable data sources that cannot be queried by methods. + The value that results from executing . + An expression tree to execute. + The type of the data in the collection that represents. + + + Executes an expression after rewriting it to call methods instead of methods on any enumerable data sources that cannot be queried by methods. + The value that results from executing . + An expression tree to execute. + + + Returns a textual representation of the enumerable collection or, if it is null, of the expression tree that is associated with this instance. + A textual representation of the enumerable collection or, if it is null, of the expression tree that is associated with this instance. + + + Provides a set of static (Shared in Visual Basic) methods for querying data structures that implement . + + + Applies an accumulator function over a sequence. + The final accumulator value. + A sequence to aggregate over. + An accumulator function to apply to each element. + The type of the elements of . + + or is null. + + contains no elements. + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value. + The final accumulator value. + A sequence to aggregate over. + The initial accumulator value. + An accumulator function to invoke on each element. + The type of the elements of . + The type of the accumulator value. + + or is null. + + + 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 transformed final accumulator value. + A sequence to aggregate over. + The initial accumulator value. + An accumulator function to invoke on each element. + A function to transform the final accumulator value into the result value. + The type of the elements of . + The type of the accumulator value. + The type of the resulting value. + + or or is null. + + + Determines whether all the elements of a sequence satisfy a condition. + true if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, false. + A sequence whose elements to test for a condition. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Determines whether a sequence contains any elements. + true if the source sequence contains any elements; otherwise, false. + A sequence to check for being empty. + The type of the elements of . + + is null. + + + Determines whether any element of a sequence satisfies a condition. + true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. + A sequence whose elements to test for a condition. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Converts a generic to a generic . + An that represents the input sequence. + A sequence to convert. + The type of the elements of . + + is null. + + + Converts an to an . + An that represents the input sequence. + A sequence to convert. + + does not implement for some . + + is null. + + + Computes the average of a sequence of values. + The average of the sequence of values. + A sequence of values to calculate the average of. + + is null. + + contains no elements. + + + Computes the average of a sequence of values. + The average of the sequence of values. + A sequence of values to calculate the average of. + + is null. + + contains no elements. + + + Computes the average of a sequence of values. + The average of the sequence of values. + A sequence of values to calculate the average of. + + is null. + + contains no elements. + + + Computes the average of a sequence of values. + The average of the sequence of values. + A sequence of values to calculate the average of. + + is null. + + contains no elements. + + + Computes the average of a sequence of nullable values. + The average of the sequence of values, or null if the source sequence is empty or contains only null values. + A sequence of nullable values to calculate the average of. + + is null. + + + Computes the average of a sequence of nullable values. + The average of the sequence of values, or null if the source sequence is empty or contains only null values. + A sequence of nullable values to calculate the average of. + + is null. + + + Computes the average of a sequence of nullable values. + The average of the sequence of values, or null if the source sequence is empty or contains only null values. + A sequence of nullable values to calculate the average of. + + is null. + + + Computes the average of a sequence of nullable values. + The average of the sequence of values, or null if the source sequence is empty or contains only null values. + A sequence of nullable values to calculate the average of. + + is null. + + + Computes the average of a sequence of nullable values. + The average of the sequence of values, or null if the source sequence is empty or contains only null values. + A sequence of nullable values to calculate the average of. + + is null. + + + Computes the average of a sequence of values. + The average of the sequence of values. + A sequence of values to calculate the average of. + + is null. + + contains no elements. + + + Computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values. + A sequence of values that are used to calculate an average. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + contains no elements. + + + Computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + contains no elements. + + + Computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + contains no elements. + + + Computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + contains no elements. + + + Computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values, or null if the sequence is empty or contains only null values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values, or null if the sequence is empty or contains only null values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values, or null if the sequence is empty or contains only null values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values, or null if the sequence is empty or contains only null values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values, or null if the sequence is empty or contains only null values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + contains no elements. + + + Converts the elements of an to the specified type. + An that contains each element of the source sequence converted to the specified type. + The that contains the elements to be converted. + The type to convert the elements of to. + + is null. + An element in the sequence cannot be cast to type . + + + Concatenates two sequences. + An that contains the concatenated elements of the two input sequences. + The first sequence to concatenate. + The sequence to concatenate to the first sequence. + The type of the elements of the input sequences. + + or is null. + + + Determines whether a sequence contains a specified element by using the default equality comparer. + true if the input sequence contains an element that has the specified value; otherwise, false. + An in which to locate . + The object to locate in the sequence. + The type of the elements of . + + is null. + + + Determines whether a sequence contains a specified element by using a specified . + true if the input sequence contains an element that has the specified value; otherwise, false. + An in which to locate . + The object to locate in the sequence. + An to compare values. + The type of the elements of . + + is null. + + + Returns the number of elements in a sequence. + The number of elements in the input sequence. + The that contains the elements to be counted. + The type of the elements of . + + is null. + The number of elements in is larger than . + + + Returns the number of elements in the specified sequence that satisfies a condition. + The number of elements in the sequence that satisfies the condition in the predicate function. + An that contains the elements to be counted. + A function to test each element for a condition. + The type of the elements of . + + or is null. + The number of elements in is larger than . + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton collection if the sequence is empty. + An that contains default() if is empty; otherwise, . + The to return a default value for if empty. + The type of the elements of . + + is null. + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + An that contains if is empty; otherwise, . + The to return the specified value for if empty. + The value to return if the sequence is empty. + The type of the elements of . + + is null. + + + Returns distinct elements from a sequence by using the default equality comparer to compare values. + An that contains distinct elements from . + The to remove duplicates from. + The type of the elements of . + + is null. + + + Returns distinct elements from a sequence by using a specified to compare values. + An that contains distinct elements from . + The to remove duplicates from. + An to compare values. + The type of the elements of . + + or is null. + + + Returns the element at a specified index in a sequence. + The element at the specified position in . + An to return an element from. + The zero-based index of the element to retrieve. + The type of the elements of . + + is null. + + is less than zero. + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + default() if is outside the bounds of ; otherwise, the element at the specified position in . + An to return an element from. + The zero-based index of the element to retrieve. + The type of the elements of . + + is null. + + + Produces the set difference of two sequences by using the default equality comparer to compare values. + An that contains the set difference of the two sequences. + An whose elements that are not also in will be returned. + An whose elements that also occur in the first sequence will not appear in the returned sequence. + The type of the elements of the input sequences. + + or is null. + + + Produces the set difference of two sequences by using the specified to compare values. + An that contains the set difference of the two sequences. + An whose elements that are not also in will be returned. + An whose elements that also occur in the first sequence will not appear in the returned sequence. + An to compare values. + The type of the elements of the input sequences. + + or is null. + + + Returns the first element of a sequence. + The first element in . + The to return the first element of. + The type of the elements of . + + is null. + The source sequence is empty. + + + Returns the first element of a sequence that satisfies a specified condition. + The first element in that passes the test in . + An to return an element from. + A function to test each element for a condition. + The type of the elements of . + + or is null. + No element satisfies the condition in .-or-The source sequence is empty. + + + Returns the first element of a sequence, or a default value if the sequence contains no elements. + default() if is empty; otherwise, the first element in . + The to return the first element of. + The type of the elements of . + + is null. + + + Returns the first element of a sequence that satisfies a specified condition or a default value if no such element is found. + default() if is empty or if no element passes the test specified by ; otherwise, the first element in that passes the test specified by . + An to return an element from. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Groups the elements of a sequence according to a specified key selector function. + An IQueryable<IGrouping<TKey, TSource>> in C# or IQueryable(Of IGrouping(Of TKey, TSource)) in Visual Basic where each object contains a sequence of objects and a key. + An whose elements to group. + A function to extract the key for each element. + The type of the elements of . + The type of the key returned by the function represented in . + + or is null. + + + Groups the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer. + An IQueryable<IGrouping<TKey, TSource>> in C# or IQueryable(Of IGrouping(Of TKey, TSource)) in Visual Basic where each contains a sequence of objects and a key. + An whose elements to group. + A function to extract the key for each element. + An to compare keys. + The type of the elements of . + The type of the key returned by the function represented in . + + or or is null. + + + Groups the elements of a sequence according to a specified key selector function and projects the elements for each group by using a specified function. + An IQueryable<IGrouping<TKey, TElement>> in C# or IQueryable(Of IGrouping(Of TKey, TElement)) in Visual Basic where each contains a sequence of objects of type and a key. + An whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an . + The type of the elements of . + The type of the key returned by the function represented in . + The type of the elements in each . + + or or is null. + + + Groups the elements of a sequence and projects the elements for each group by using a specified function. Key values are compared by using a specified comparer. + An IQueryable<IGrouping<TKey, TElement>> in C# or IQueryable(Of IGrouping(Of TKey, TElement)) in Visual Basic where each contains a sequence of objects of type and a key. + An whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an . + An to compare keys. + The type of the elements of . + The type of the key returned by the function represented in . + The type of the elements in each . + + or or or is null. + + + Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The elements of each group are projected by using a specified function. + An T:System.Linq.IQueryable`1 that has a type argument of and where each element represents a projection over a group and its key. + An whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an . + A function to create a result value from each group. + The type of the elements of . + The type of the key returned by the function represented in . + The type of the elements in each . + The type of the result value returned by . + + or or or is null. + + + Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Keys are compared by using a specified comparer and the elements of each group are projected by using a specified function. + An T:System.Linq.IQueryable`1 that has a type argument of and where each element represents a projection over a group and its key. + An whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an . + A function to create a result value from each group. + An to compare keys. + The type of the elements of . + The type of the key returned by the function represented in . + The type of the elements in each . + The type of the result value returned by . + + or or or or is null. + + + Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. + An T:System.Linq.IQueryable`1 that has a type argument of and where each element represents a projection over a group and its key. + An whose elements to group. + A function to extract the key for each element. + A function to create a result value from each group. + The type of the elements of . + The type of the key returned by the function represented in . + The type of the result value returned by . + + or or is null. + + + Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Keys are compared by using a specified comparer. + An T:System.Linq.IQueryable`1 that has a type argument of and where each element represents a projection over a group and its key. + An whose elements to group. + A function to extract the key for each element. + A function to create a result value from each group. + An to compare keys. + The type of the elements of . + The type of the key returned by the function represented in . + The type of the result value returned by . + + or or or is null. + + + Correlates the elements of two sequences based on key equality and groups the results. The default equality comparer is used to compare keys. + An that contains elements of type obtained by performing a grouped join on two sequences. + The first sequence to join. + The sequence to join to the first sequence. + A function to extract the join key from each element of the first sequence. + A function to extract the join key from each element of the second sequence. + A function to create a result element from an element from the first sequence and a collection of matching elements from the second sequence. + The type of the elements of the first sequence. + The type of the elements of the second sequence. + The type of the keys returned by the key selector functions. + The type of the result elements. + + or or or or is null. + + + Correlates the elements of two sequences based on key equality and groups the results. A specified is used to compare keys. + An that contains elements of type obtained by performing a grouped join on two sequences. + The first sequence to join. + The sequence to join to the first sequence. + A function to extract the join key from each element of the first sequence. + A function to extract the join key from each element of the second sequence. + A function to create a result element from an element from the first sequence and a collection of matching elements from the second sequence. + A comparer to hash and compare keys. + The type of the elements of the first sequence. + The type of the elements of the second sequence. + The type of the keys returned by the key selector functions. + The type of the result elements. + + or or or or is null. + + + Produces the set intersection of two sequences by using the default equality comparer to compare values. + A sequence that contains the set intersection of the two sequences. + A sequence whose distinct elements that also appear in are returned. + A sequence whose distinct elements that also appear in the first sequence are returned. + The type of the elements of the input sequences. + + or is null. + + + Produces the set intersection of two sequences by using the specified to compare values. + An that contains the set intersection of the two sequences. + An whose distinct elements that also appear in are returned. + An whose distinct elements that also appear in the first sequence are returned. + An to compare values. + The type of the elements of the input sequences. + + or is null. + + + Correlates the elements of two sequences based on matching keys. The default equality comparer is used to compare keys. + An that has elements of type obtained by performing an inner join on two sequences. + The first sequence to join. + The sequence to join to the first sequence. + A function to extract the join key from each element of the first sequence. + A function to extract the join key from each element of the second sequence. + A function to create a result element from two matching elements. + The type of the elements of the first sequence. + The type of the elements of the second sequence. + The type of the keys returned by the key selector functions. + The type of the result elements. + + or or or or is null. + + + Correlates the elements of two sequences based on matching keys. A specified is used to compare keys. + An that has elements of type obtained by performing an inner join on two sequences. + The first sequence to join. + The sequence to join to the first sequence. + A function to extract the join key from each element of the first sequence. + A function to extract the join key from each element of the second sequence. + A function to create a result element from two matching elements. + An to hash and compare keys. + The type of the elements of the first sequence. + The type of the elements of the second sequence. + The type of the keys returned by the key selector functions. + The type of the result elements. + + or or or or is null. + + + Returns the last element in a sequence. + The value at the last position in . + An to return the last element of. + The type of the elements of . + + is null. + The source sequence is empty. + + + Returns the last element of a sequence that satisfies a specified condition. + The last element in that passes the test specified by . + An to return an element from. + A function to test each element for a condition. + The type of the elements of . + + or is null. + No element satisfies the condition in .-or-The source sequence is empty. + + + Returns the last element in a sequence, or a default value if the sequence contains no elements. + default() if is empty; otherwise, the last element in . + An to return the last element of. + The type of the elements of . + + is null. + + + Returns the last element of a sequence that satisfies a condition or a default value if no such element is found. + default() if is empty or if no elements pass the test in the predicate function; otherwise, the last element of that passes the test in the predicate function. + An to return an element from. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Returns an that represents the total number of elements in a sequence. + The number of elements in . + An that contains the elements to be counted. + The type of the elements of . + + is null. + The number of elements exceeds . + + + Returns an that represents the number of elements in a sequence that satisfy a condition. + The number of elements in that satisfy the condition in the predicate function. + An that contains the elements to be counted. + A function to test each element for a condition. + The type of the elements of . + + or is null. + The number of matching elements exceeds . + + + Returns the maximum value in a generic . + The maximum value in the sequence. + A sequence of values to determine the maximum of. + The type of the elements of . + + is null. + + + Invokes a projection function on each element of a generic and returns the maximum resulting value. + The maximum value in the sequence. + A sequence of values to determine the maximum of. + A projection function to apply to each element. + The type of the elements of . + The type of the value returned by the function represented by . + + or is null. + + + Returns the minimum value of a generic . + The minimum value in the sequence. + A sequence of values to determine the minimum of. + The type of the elements of . + + is null. + + + Invokes a projection function on each element of a generic and returns the minimum resulting value. + The minimum value in the sequence. + A sequence of values to determine the minimum of. + A projection function to apply to each element. + The type of the elements of . + The type of the value returned by the function represented by . + + or is null. + + + Filters the elements of an based on a specified type. + A collection that contains the elements from that have type . + An whose elements to filter. + The type to filter the elements of the sequence on. + + is null. + + + Sorts the elements of a sequence in ascending order according to a key. + An whose elements are sorted according to a key. + A sequence of values to order. + A function to extract a key from an element. + The type of the elements of . + The type of the key returned by the function that is represented by . + + or is null. + + + Sorts the elements of a sequence in ascending order by using a specified comparer. + An whose elements are sorted according to a key. + A sequence of values to order. + A function to extract a key from an element. + An to compare keys. + The type of the elements of . + The type of the key returned by the function that is represented by . + + or or is null. + + + Sorts the elements of a sequence in descending order according to a key. + An whose elements are sorted in descending order according to a key. + A sequence of values to order. + A function to extract a key from an element. + The type of the elements of . + The type of the key returned by the function that is represented by . + + or is null. + + + Sorts the elements of a sequence in descending order by using a specified comparer. + An whose elements are sorted in descending order according to a key. + A sequence of values to order. + A function to extract a key from an element. + An to compare keys. + The type of the elements of . + The type of the key returned by the function that is represented by . + + or or is null. + + + Inverts the order of the elements in a sequence. + An whose elements correspond to those of the input sequence in reverse order. + A sequence of values to reverse. + The type of the elements of . + + is null. + + + Projects each element of a sequence into a new form. + An whose elements are the result of invoking a projection function on each element of . + A sequence of values to project. + A projection function to apply to each element. + The type of the elements of . + The type of the value returned by the function represented by . + + or is null. + + + Projects each element of a sequence into a new form by incorporating the element's index. + An whose elements are the result of invoking a projection function on each element of . + A sequence of values to project. + A projection function to apply to each element. + The type of the elements of . + The type of the value returned by the function represented by . + + or is null. + + + Projects each element of a sequence to an and invokes a result selector function on each element therein. The resulting values from each intermediate sequence are combined into a single, one-dimensional sequence and returned. + An whose elements are the result of invoking the one-to-many projection function on each element of and then mapping each of those sequence elements and their corresponding element to a result element. + A sequence of values to project. + A projection function to apply to each element of the input sequence. + A projection function to apply to each element of each intermediate sequence. + The type of the elements of . + The type of the intermediate elements collected by the function represented by . + The type of the elements of the resulting sequence. + + or or is null. + + + Projects each element of a sequence to an and combines the resulting sequences into one sequence. + An whose elements are the result of invoking a one-to-many projection function on each element of the input sequence. + A sequence of values to project. + A projection function to apply to each element. + The type of the elements of . + The type of the elements of the sequence returned by the function represented by . + + or is null. + + + Projects each element of a sequence to an that incorporates the index of the source element that produced it. A result selector function is invoked on each element of each intermediate sequence, and the resulting values are combined into a single, one-dimensional sequence and returned. + An whose elements are the result of invoking the one-to-many projection function on each element of and then mapping each of those sequence elements and their corresponding element to a result element. + A sequence of values to project. + A projection function to apply to each element of the input sequence; the second parameter of this function represents the index of the source element. + A projection function to apply to each element of each intermediate sequence. + The type of the elements of . + The type of the intermediate elements collected by the function represented by . + The type of the elements of the resulting sequence. + + or or is null. + + + Projects each element of a sequence to an and combines the resulting sequences into one sequence. The index of each source element is used in the projected form of that element. + An whose elements are the result of invoking a one-to-many projection function on each element of the input sequence. + A sequence of values to project. + A projection function to apply to each element; the second parameter of this function represents the index of the source element. + The type of the elements of . + The type of the elements of the sequence returned by the function represented by . + + or is null. + + + Determines whether two sequences are equal by using the default equality comparer to compare elements. + true if the two source sequences are of equal length and their corresponding elements compare equal; otherwise, false. + An whose elements to compare to those of . + An whose elements to compare to those of the first sequence. + The type of the elements of the input sequences. + + or is null. + + + Determines whether two sequences are equal by using a specified to compare elements. + true if the two source sequences are of equal length and their corresponding elements compare equal; otherwise, false. + An whose elements to compare to those of . + An whose elements to compare to those of the first sequence. + An to use to compare elements. + The type of the elements of the input sequences. + + or is null. + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + The single element of the input sequence. + An to return the single element of. + The type of the elements of . + + is null. + + has more than one element. + + + Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists. + The single element of the input sequence that satisfies the condition in . + An to return a single element from. + A function to test an element for a condition. + The type of the elements of . + + or is null. + No element satisfies the condition in .-or-More than one element satisfies the condition in .-or-The source sequence is empty. + + + Returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence. + The single element of the input sequence, or default() if the sequence contains no elements. + An to return the single element of. + The type of the elements of . + + is null. + + has more than one element. + + + Returns the only element of a sequence that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition. + The single element of the input sequence that satisfies the condition in , or default() if no such element is found. + An to return a single element from. + A function to test an element for a condition. + The type of the elements of . + + or is null. + More than one element satisfies the condition in . + + + Bypasses a specified number of elements in a sequence and then returns the remaining elements. + An that contains elements that occur after the specified index in the input sequence. + An to return elements from. + The number of elements to skip before returning the remaining elements. + The type of the elements of . + + is null. + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + An that contains elements from starting at the first element in the linear series that does not pass the test specified by . + An to return elements from. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. The element's index is used in the logic of the predicate function. + An that contains elements from starting at the first element in the linear series that does not pass the test specified by . + An to return elements from. + A function to test each element for a condition; the second parameter of this function represents the index of the source element. + The type of the elements of . + + or is null. + + + Computes the sum of a sequence of values. + The sum of the values in the sequence. + A sequence of values to calculate the sum of. + + is null. + The sum is larger than . + + + Computes the sum of a sequence of values. + The sum of the values in the sequence. + A sequence of values to calculate the sum of. + + is null. + + + Computes the sum of a sequence of values. + The sum of the values in the sequence. + A sequence of values to calculate the sum of. + + is null. + The sum is larger than . + + + Computes the sum of a sequence of values. + The sum of the values in the sequence. + A sequence of values to calculate the sum of. + + is null. + The sum is larger than . + + + Computes the sum of a sequence of nullable values. + The sum of the values in the sequence. + A sequence of nullable values to calculate the sum of. + + is null. + The sum is larger than . + + + Computes the sum of a sequence of nullable values. + The sum of the values in the sequence. + A sequence of nullable values to calculate the sum of. + + is null. + + + Computes the sum of a sequence of nullable values. + The sum of the values in the sequence. + A sequence of nullable values to calculate the sum of. + + is null. + The sum is larger than . + + + Computes the sum of a sequence of nullable values. + The sum of the values in the sequence. + A sequence of nullable values to calculate the sum of. + + is null. + The sum is larger than . + + + Computes the sum of a sequence of nullable values. + The sum of the values in the sequence. + A sequence of nullable values to calculate the sum of. + + is null. + + + Computes the sum of a sequence of values. + The sum of the values in the sequence. + A sequence of values to calculate the sum of. + + is null. + + + Computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + The sum is larger than . + + + Computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + The sum is larger than . + + + Computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + The sum is larger than . + + + Computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + The sum is larger than . + + + Computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + The sum is larger than . + + + Computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + The sum is larger than . + + + Computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Returns a specified number of contiguous elements from the start of a sequence. + An that contains the specified number of elements from the start of . + The sequence to return elements from. + The number of elements to return. + The type of the elements of . + + is null. + + + Returns elements from a sequence as long as a specified condition is true. + An that contains elements from the input sequence occurring before the element at which the test specified by no longer passes. + The sequence to return elements from. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Returns elements from a sequence as long as a specified condition is true. The element's index is used in the logic of the predicate function. + An that contains elements from the input sequence occurring before the element at which the test specified by no longer passes. + The sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the element in the source sequence. + The type of the elements of . + + or is null. + + + Performs a subsequent ordering of the elements in a sequence in ascending order according to a key. + An whose elements are sorted according to a key. + An that contains elements to sort. + A function to extract a key from each element. + The type of the elements of . + The type of the key returned by the function represented by . + + or is null. + + + Performs a subsequent ordering of the elements in a sequence in ascending order by using a specified comparer. + An whose elements are sorted according to a key. + An that contains elements to sort. + A function to extract a key from each element. + An to compare keys. + The type of the elements of . + The type of the key returned by the function represented by . + + or or is null. + + + Performs a subsequent ordering of the elements in a sequence in descending order, according to a key. + An whose elements are sorted in descending order according to a key. + An that contains elements to sort. + A function to extract a key from each element. + The type of the elements of . + The type of the key returned by the function represented by . + + or is null. + + + Performs a subsequent ordering of the elements in a sequence in descending order by using a specified comparer. + A collection whose elements are sorted in descending order according to a key. + An that contains elements to sort. + A function to extract a key from each element. + An to compare keys. + The type of the elements of . + The type of the key that is returned by the function. + + or or is null. + + + Produces the set union of two sequences by using the default equality comparer. + An that contains the elements from both input sequences, excluding duplicates. + A sequence whose distinct elements form the first set for the union operation. + A sequence whose distinct elements form the second set for the union operation. + The type of the elements of the input sequences. + + or is null. + + + Produces the set union of two sequences by using a specified . + An that contains the elements from both input sequences, excluding duplicates. + A sequence whose distinct elements form the first set for the union operation. + A sequence whose distinct elements form the second set for the union operation. + An to compare values. + The type of the elements of the input sequences. + + or is null. + + + Filters a sequence of values based on a predicate. + An that contains elements from the input sequence that satisfy the condition specified by . + An to filter. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Filters a sequence of values based on a predicate. Each element's index is used in the logic of the predicate function. + An that contains elements from the input sequence that satisfy the condition specified by . + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the element in the source sequence. + The type of the elements of . + + or is null. + + + Merges two sequences by using the specified predicate function. + An that contains merged elements of two input sequences. + The first sequence to merge. + The second sequence to merge. + A function that specifies how to merge the elements from the two sequences. + The type of the elements of the first input sequence. + The type of the elements of the second input sequence. + The type of the elements of the result sequence. + + or is null. + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netcore50/de/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/de/System.Linq.Queryable.xml new file mode 100644 index 0000000..cd0d76a --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/de/System.Linq.Queryable.xml @@ -0,0 +1,1281 @@ + + + + System.Linq.Queryable + + + + Stellt eine Ausdrucksbaumstruktur dar und liefert die Funktionalität zur Ausführung der Ausdrucksbaumstruktur, nachdem sie umgeschrieben wurde. + + + Initialisiert eine neue Instanz der -Klasse. + + + Stellt eine Ausdrucksbaumstruktur dar und liefert die Funktionalität zur Ausführung der Ausdrucksbaumstruktur, nachdem sie umgeschrieben wurde. + Der Datentyp des Werts, der aus der Ausführung der Ausdrucksbaumstruktur resultiert. + + + Initialisiert eine neue Instanz der -Klasse. + Eine Ausdrucksbaumstruktur, die mit der neuen Instanz verknüpft werden soll. + + + Stellt als eine -Datenquelle dar. + + + Initialisiert eine neue Instanz der -Klasse. + + + Stellt eine -Auflistung als -Datenquelle dar. + Der Datentyp in der Datenauflistung. + + + Initialisiert eine neue Instanz der -Klasse und verknüpft sie mit einer -Auflistung. + Eine Auflistung, die mit der neuen Instanz verknüpft werden soll. + + + Initialisiert eine neue Instanz der -Klasse und verknüpft die Instanz mit einer Ausdrucksbaumstruktur. + Eine Ausdrucksbaumstruktur, die mit der neuen Instanz verknüpft werden soll. + + + Gibt einen Enumerator zurück, der die zugehörige -Auflistung durchlaufen kann oder der, falls diese null ist, die Auflistung durchläuft, die von der Umschreibung der zugehörigen Ausdrucksbaumstruktur als Abfrage zu einer -Datenquelle stammt und diese ausführt. + Ein Enumerator, mit dem die zugehörige Datenquelle durchlaufen werden kann. + + + Gibt einen Enumerator zurück, der die zugehörige -Auflistung durchlaufen kann oder der, falls diese null ist, die Auflistung durchläuft, die von der Umschreibung der zugehörigen Ausdrucksbaumstruktur als Abfrage zu einer -Datenquelle stammt und diese ausführt. + Ein Enumerator, mit dem die zugehörige Datenquelle durchlaufen werden kann. + + + Ruft den Datentyp in der Auflistung ab, die diese Instanz darstellt. + Der Datentyp in der Auflistung, die diese Instanz darstellt. + + + Ruft die Ausdrucksbaumstruktur ab, die mit dieser Instanz verknüpft ist oder diese Instanz darstellt. + Die Ausdrucksbaumstruktur, die mit dieser Instanz verknüpft ist oder diese Instanz darstellt. + + + Ruft den Abfrageanbieter ab, der mit dieser Instanz verknüpft ist. + Der Abfrageanbieter, der mit dieser Instanz verknüpft ist. + + + Erstellt eine neues -Objekt und verknüpft es mit einer angegebenen Ausdrucksbaumstruktur, die eine -Auflistung von Daten darstellt. + Ein EnumerableQuery-Objekt, das mit verknüpft ist. + Eine auszuführende Ausdrucksbaumstruktur. + Der Datentyp in der Auflistung, die darstellt. + + + Erstellt eine neues -Objekt und verknüpft es mit einer angegebenen Ausdrucksbaumstruktur, die eine -Auflistung von Daten darstellt. + Ein -Objekt, das mit diesem verknüpft ist. + Eine Ausdrucksbaumstruktur, die eine -Auflistung von Daten darstellt. + + + Führt einen Ausdruck aus, nachdem dieser zum Aufrufen von -Methoden statt -Methoden zu allen zählbaren Datenquellen umgeschrieben wurde, die nicht von -Methoden abgefragt werden können. + Der Wert, der aus der Ausführung von stammt. + Eine auszuführende Ausdrucksbaumstruktur. + Der Datentyp in der Auflistung, die darstellt. + + + Führt einen Ausdruck aus, nachdem dieser zum Aufrufen von -Methoden statt -Methoden zu allen zählbaren Datenquellen umgeschrieben wurde, die nicht von -Methoden abgefragt werden können. + Der Wert, der aus der Ausführung von stammt. + Eine auszuführende Ausdrucksbaumstruktur. + + + Gibt eine Textdarstellung der zählbaren Auflistung zurück oder, wenn diese NULL ist, eine Darstellung der Ausdrucksbaumstruktur, die dieser Instanz zugeordnet ist. + Eine Textdarstellung der zählbaren Auflistung oder, wenn diese NULL ist, eine Darstellung der Ausdrucksbaumstruktur, die dieser Instanz zugeordnet ist. + + + Stellt einen Satz von static-Methoden (Shared-Methoden in Visual Basic) zum Abfragen von Datenstrukturen bereit, die implementieren. + + + Wendet eine Akkumulatorfunktion auf eine Sequenz an. + Der letzte Akkumulatorwert. + Eine Sequenz, die aggregiert werden soll. + Eine Akkumulatorfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + enthält keine Elemente. + + + Wendet eine Akkumulatorfunktion auf eine Sequenz an.Der angegebene Startwert wird als erster Akkumulatorwert verwendet. + Der letzte Akkumulatorwert. + Eine Sequenz, die aggregiert werden soll. + Der erste Akkumulatorwert. + Eine Akkumulatorfunktion, die für jedes Element aufgerufen werden soll. + Der Typ der Elemente von . + Der Typ des Akkumulatorwerts. + + oder ist null. + + + Wendet eine Akkumulatorfunktion auf eine Sequenz an.Der angegebene Startwert wird als erster Akkumulatorwert verwendet, und der Ergebniswert wird mit der angegebenen Funktion ausgewählt. + Der transformierte letzte Akkumulatorwert. + Eine Sequenz, die aggregiert werden soll. + Der erste Akkumulatorwert. + Eine Akkumulatorfunktion, die für jedes Element aufgerufen werden soll. + Eine Funktion zum Transformieren des letzten Akkumulatorwerts in den Ergebniswert. + Der Typ der Elemente von . + Der Typ des Akkumulatorwerts. + Der Typ des Ergebniswerts. + + , oder ist null. + + + Bestimmt, ob alle Elemente einer Sequenz eine Bedingung erfüllen. + true, wenn jedes Element der Quellsequenz im angegebenen Prädikat erfolgreich überprüft wird oder wenn die Sequenz leer ist, andernfalls false. + Eine Sequenz, deren Elemente auf eine Bedingung überprüft werden sollen. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Bestimmt, ob eine Sequenz Elemente enthält. + true, wenn die Quellsequenz Elemente enthält, andernfalls false. + Eine Sequenz, für die überprüft werden soll, ob sie leer ist. + Der Typ der Elemente von . + + ist null. + + + Bestimmt, ob ein Element einer Sequenz eine Bedingung erfüllt. + true, wenn Elemente der Quellsequenz im angegebenen Prädikat erfolgreich überprüft werden, andernfalls false. + Eine Sequenz, deren Elemente auf eine Bedingung überprüft werden sollen. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Konvertiert ein generisches in ein generisches . + Ein , das die Eingabesequenz darstellt. + Eine zu konvertierende Sequenz. + Der Typ der Elemente von . + + ist null. + + + Konvertiert einen in einen . + Ein , das die Eingabesequenz darstellt. + Eine zu konvertierende Sequenz. + Für einige wird von nicht implementiert. + + ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von -Werten, deren Durchschnitt berechnet werden soll. + + ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von -Werten, deren Durchschnitt berechnet werden soll. + + ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von -Werten, deren Durchschnitt berechnet werden soll. + + ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von -Werten, deren Durchschnitt berechnet werden soll. + + ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen. + Der Durchschnitt der Sequenz von Werten oder null, wenn die Quellsequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von -Werten, die NULL zulassen und deren Durchschnitt berechnet werden soll. + + ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen. + Der Durchschnitt der Sequenz von Werten oder null, wenn die Quellsequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von -Werten, die NULL zulassen und deren Durchschnitt berechnet werden soll. + + ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen. + Der Durchschnitt der Sequenz von Werten oder null, wenn die Quellsequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von -Werten, die NULL zulassen und deren Durchschnitt berechnet werden soll. + + ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen. + Der Durchschnitt der Sequenz von Werten oder null, wenn die Quellsequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von -Werten, die NULL zulassen und deren Durchschnitt berechnet werden soll. + + ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen. + Der Durchschnitt der Sequenz von Werten oder null, wenn die Quellsequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von -Werten, die NULL zulassen und deren Durchschnitt berechnet werden soll. + + ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von -Werten, deren Durchschnitt berechnet werden soll. + + ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von Werten, mit denen ein Durchschnittswert berechnet wird. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten oder null, wenn die -Sequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten oder null, wenn die -Sequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten oder null, wenn die -Sequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten oder null, wenn die -Sequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten oder null, wenn die -Sequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + enthält keine Elemente. + + + Konvertiert die Elemente eines in den angegebenen Typ. + Ein , das jedes in den angegebenen Typ konvertierte Element der Quellsequenz enthält. + Das , das die zu konvertierenden Elemente enthält. + Der Typ, in den die Elemente von konvertiert werden sollen. + + ist null. + Ein Element in der Sequenz kann nicht in den Typ umgewandelt werden. + + + Verkettet zwei Sequenzen. + Ein , das die verketteten Elemente der beiden Eingabesequenzen enthält. + Die erste zu verkettende Sequenz. + Die Sequenz, die mit der ersten Sequenz verkettet werden soll. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Bestimmt mithilfe des Standardgleichheitsvergleichs, ob eine Sequenz ein angegebenes Element enthält. + true, wenn die Eingabesequenz ein Element mit dem angegebenen Wert enthält, andernfalls false. + Ein , in dem gesucht werden soll. + Das Objekt, das in der Sequenz gesucht werden soll. + Der Typ der Elemente von . + + ist null. + + + Bestimmt mithilfe eines angegebenen , ob eine Sequenz ein angegebenes Element enthält. + true, wenn die Eingabesequenz ein Element mit dem angegebenen Wert enthält, andernfalls false. + Ein , in dem gesucht werden soll. + Das Objekt, das in der Sequenz gesucht werden soll. + Ein zum Vergleichen von Werten. + Der Typ der Elemente von . + + ist null. + + + Gibt die Anzahl der Elemente in einer Sequenz zurück. + Die Anzahl der Elemente in der Eingabesequenz. + Das , das die zu zählenden Elemente enthält. + Der Typ der Elemente von . + + ist null. + Die Anzahl der Elemente in ist größer als . + + + Gibt die Anzahl der Elemente in der angegebenen Sequenz zurück, die eine Bedingung erfüllen. + Die Anzahl von Elementen in der Sequenz, die die Bedingung in der Prädikatfunktion erfüllen. + Ein , das die zu zählenden Elemente enthält. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + Die Anzahl der Elemente in ist größer als . + + + Gibt die Elemente der angegebenen Sequenz zurück, oder den Standardwert des Typparameters in einer Singletonauflistung, wenn die Sequenz leer ist. + Ein , das default() enthält, wenn leer ist, andernfalls . + Das , für das ein Standardwert zurückgegeben soll, wenn die Sequenz leer ist. + Der Typ der Elemente von . + + ist null. + + + Gibt die Elemente der angegebenen Sequenz zurück, oder den angegebenen Wert in einer Singletonauflistung, wenn die Sequenz leer ist. + Ein , das enthält, wenn leer ist, andernfalls . + Das , für das der angegebene Wert zurückgegeben soll, wenn die Sequenz leer ist. + Der Wert, der zurückgegeben werden soll, wenn die Sequenz leer ist. + Der Typ der Elemente von . + + ist null. + + + Gibt mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Werten unterschiedliche Elemente aus einer Sequenz zurück. + Ein , das unterschiedliche Elemente aus enthält. + Das , aus dem Duplikate entfernt werden sollen. + Der Typ der Elemente von . + + ist null. + + + Gibt mithilfe eines angegebenen zum Vergleichen von Werten unterschiedliche Elemente aus einer Sequenz zurück. + Ein , das unterschiedliche Elemente aus enthält. + Das , aus dem Duplikate entfernt werden sollen. + Ein zum Vergleichen von Werten. + Der Typ der Elemente von . + + oder ist null. + + + Gibt das Element an einem angegebenen Index in einer Sequenz zurück. + Das Element an der angegebenen Position in . + Ein , aus dem ein Element zurückgegeben werden soll. + Der auf 0 (null) basierende Index des abzurufenden Elements. + Der Typ der Elemente von . + + ist null. + + ist kleiner als 0. + + + Gibt das Element an einem angegebenen Index in einer Sequenz oder einen Standardwert zurück, wenn der Index außerhalb des gültigen Bereichs liegt. + default(), wenn außerhalb der Begrenzungen von liegt, andernfalls das Element an der angegebenen Position in . + Ein , aus dem ein Element zurückgegeben werden soll. + Der auf 0 (null) basierende Index des abzurufenden Elements. + Der Typ der Elemente von . + + ist null. + + + Erzeugt die Differenzmenge zweier Sequenzen mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Werten. + Ein , das die Differenzmenge der beiden Sequenzen enthält. + Es wird ein zurückgegeben, dessen Elemente nicht auch in enthalten sind. + Die Rückgabesequenz enthält kein , dessen Elemente auch in der ersten Sequenz vorhanden sind. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Erzeugt mithilfe des angegebenen zum Vergleichen von Werten die Differenzmenge zweier Sequenzen. + Ein , das die Differenzmenge der beiden Sequenzen enthält. + Es wird ein zurückgegeben, dessen Elemente nicht auch in enthalten sind. + Die Rückgabesequenz enthält kein , dessen Elemente auch in der ersten Sequenz vorhanden sind. + Ein zum Vergleichen von Werten. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Gibt das erste Element einer Sequenz zurück. + Das erste Element in . + Das , dessen erstes Element zurückgegeben werden soll. + Der Typ der Elemente von . + + ist null. + Die Quellsequenz ist leer. + + + Gibt das erste Element einer Sequenz zurück, das eine angegebene Bedingung erfüllt. + Das erste Element in , das in erfolgreich überprüft wird. + Ein , aus dem ein Element zurückgegeben werden soll. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + Kein Element erfüllt die Bedingung in .- oder -Die Quellsequenz ist leer. + + + Gibt das erste Element einer Sequenz zurück, oder einen Standardwert, wenn die Sequenz keine Elemente enthält. + default(), wenn leer ist, andernfalls das erste Element in . + Das , dessen erstes Element zurückgegeben werden soll. + Der Typ der Elemente von . + + ist null. + + + Gibt das erste Element einer Sequenz zurück, das eine angegebene Bedingung erfüllt, oder einen Standardwert, wenn ein solches Element nicht gefunden wird. + default(), wenn leer ist oder wenn kein Element die von angegebene Überprüfung besteht. Andernfalls das erste Element in , das die von angegebene Überprüfung besteht. + Ein , aus dem ein Element zurückgegeben werden soll. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion. + Ein IQueryable<IGrouping<TKey, TSource>> in C# oder ein IQueryable(Of IGrouping(Of TKey, TSource)) in Visual Basic, wobei jedes -Objekt eine Sequenz von Objekten und einen Schlüssel enthält. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und vergleicht die Schlüssel mithilfe eines angegebenen Vergleichs. + Ein IQueryable<IGrouping<TKey, TSource>> in C# oder ein IQueryable(Of IGrouping(Of TKey, TSource)) in Visual Basic, wobei jedes eine Sequenz von Objekten und einen Schlüssel enthält. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + + , oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und projiziert die Elemente für jede Gruppe mithilfe einer angegebenen Funktion. + Ein IQueryable<IGrouping<TKey, TElement>> in C# oder ein IQueryable(Of IGrouping(Of TKey, TElement)) in Visual Basic, wobei jedes eine Sequenz von Objekten vom Typ und einen Schlüssel enthält. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Eine Funktion, mit der jedes Quellelement einem Element in einem zugeordnet wird. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + Der Typ der Elemente in jedem . + + , oder ist null. + + + Gruppiert die Elemente einer Sequenz und projiziert die Elemente jeder Gruppe mithilfe einer angegebenen Funktion.Schlüsselwerte werden mithilfe eines angegebenen Vergleichs verglichen. + Ein IQueryable<IGrouping<TKey, TElement>> in C# oder ein IQueryable(Of IGrouping(Of TKey, TElement)) in Visual Basic, wobei jedes eine Sequenz von Objekten vom Typ und einen Schlüssel enthält. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Eine Funktion, mit der jedes Quellelement einem Element in einem zugeordnet wird. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + Der Typ der Elemente in jedem . + + , , oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und erstellt aus jeder Gruppe und ihrem Schlüssel einen Ergebniswert.Die Elemente jeder Gruppe werden mithilfe einer angegebenen Funktion projiziert. + Ein T:System.Linq.IQueryable`1, das über das Typargument verfügt und in dem jedes Element eine Projektion über einer Gruppe und ihrem Schlüssel darstellt. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Eine Funktion, mit der jedes Quellelement einem Element in einem zugeordnet wird. + Eine Funktion, mit der aus jeder Gruppe ein Ergebniswert erstellt wird. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + Der Typ der Elemente in jedem . + Der Typ des von zurückgegebenen Ergebniswerts. + + , , oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und erstellt aus jeder Gruppe und ihrem Schlüssel einen Ergebniswert.Schlüssel werden mithilfe eines angegebenen Vergleichs verglichen, und die Elemente jeder Gruppe werden mithilfe einer angegebenen Funktion projiziert. + Ein T:System.Linq.IQueryable`1, das über das Typargument verfügt und in dem jedes Element eine Projektion über einer Gruppe und ihrem Schlüssel darstellt. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Eine Funktion, mit der jedes Quellelement einem Element in einem zugeordnet wird. + Eine Funktion, mit der aus jeder Gruppe ein Ergebniswert erstellt wird. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + Der Typ der Elemente in jedem . + Der Typ des von zurückgegebenen Ergebniswerts. + + , , , oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und erstellt aus jeder Gruppe und ihrem Schlüssel einen Ergebniswert. + Ein T:System.Linq.IQueryable`1, das über das Typargument verfügt und in dem jedes Element eine Projektion über einer Gruppe und ihrem Schlüssel darstellt. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Eine Funktion, mit der aus jeder Gruppe ein Ergebniswert erstellt wird. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + Der Typ des von zurückgegebenen Ergebniswerts. + + , oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und erstellt aus jeder Gruppe und ihrem Schlüssel einen Ergebniswert.Schlüssel werden mithilfe eines angegebenen Vergleichs verglichen. + Ein T:System.Linq.IQueryable`1, das über das Typargument verfügt und in dem jedes Element eine Projektion über einer Gruppe und ihrem Schlüssel darstellt. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Eine Funktion, mit der aus jeder Gruppe ein Ergebniswert erstellt wird. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + Der Typ des von zurückgegebenen Ergebniswerts. + + , , oder ist null. + + + Korreliert die Elemente von zwei Sequenzen anhand der Gleichheit der Schlüssel und gruppiert die Ergebnisse.Schlüssel werden mithilfe des Standardgleichheitsvergleichs verglichen. + Ein , das Elemente vom Typ enthält, die durch Ausführen eines Gruppenjoins von zwei Sequenzen ermittelt werden. + Die erste zu verknüpfende Sequenz. + Die Sequenz, die mit der ersten Sequenz verknüpft werden soll. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der ersten Sequenz. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der zweiten Sequenz. + Eine Funktion zum Erstellen eines Ergebniselements anhand eines Elements aus der ersten Sequenz und einer Auflistung von übereinstimmenden Elementen aus der zweiten Sequenz. + Der Typ der Elemente der ersten Sequenz. + Der Typ der Elemente der zweiten Sequenz. + Der Typ der von den Schlüsselauswahlfunktionen zurückgegebenen Schlüssel. + Der Typ der Ergebniselemente. + + , , , oder ist null. + + + Korreliert die Elemente von zwei Sequenzen anhand der Gleichheit der Schlüssel und gruppiert die Ergebnisse.Schlüssel werden mithilfe eines angegebenen verglichen. + Ein , das Elemente vom Typ enthält, die durch Ausführen eines Gruppenjoins von zwei Sequenzen ermittelt werden. + Die erste zu verknüpfende Sequenz. + Die Sequenz, die mit der ersten Sequenz verknüpft werden soll. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der ersten Sequenz. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der zweiten Sequenz. + Eine Funktion zum Erstellen eines Ergebniselements anhand eines Elements aus der ersten Sequenz und einer Auflistung von übereinstimmenden Elementen aus der zweiten Sequenz. + Ein Vergleich zum Hashen und Vergleichen von Schlüsseln. + Der Typ der Elemente der ersten Sequenz. + Der Typ der Elemente der zweiten Sequenz. + Der Typ der von den Schlüsselauswahlfunktionen zurückgegebenen Schlüssel. + Der Typ der Ergebniselemente. + + , , , oder ist null. + + + Erzeugt die Schnittmenge zweier Sequenzen mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Werten. + Eine Sequenz, die die Schnittmenge der beiden Sequenzen enthält. + Eine Sequenz, deren unterschiedliche Elemente, die auch in vorhanden sind, zurückgegeben werden. + Eine Sequenz, deren unterschiedliche Elemente, die auch in der ersten Sequenz vorhanden sind, zurückgegeben werden. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Erzeugt mithilfe des angegebenen zum Vergleichen von Werten die Schnittmenge von zwei Sequenzen. + Ein , das die Schnittmenge der beiden Sequenzen enthält. + Ein , dessen unterschiedliche Elemente, die auch in vorhanden sind, zurückgegeben werden. + Ein , dessen unterschiedliche Elemente, die auch in der ersten Sequenz vorhanden sind, zurückgegeben werden. + Ein zum Vergleichen von Werten. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Korreliert die Elemente von zwei Sequenzen auf der Grundlage von übereinstimmenden Schlüsseln.Schlüssel werden mithilfe des Standardgleichheitsvergleichs verglichen. + Ein , für das Elemente vom Typ durch Ausführen eines inneren Joins von zwei Sequenzen ermittelt werden. + Die erste zu verknüpfende Sequenz. + Die Sequenz, die mit der ersten Sequenz verknüpft werden soll. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der ersten Sequenz. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der zweiten Sequenz. + Eine Funktion zum Erstellen eines Ergebniselements aus zwei übereinstimmenden Elementen. + Der Typ der Elemente der ersten Sequenz. + Der Typ der Elemente der zweiten Sequenz. + Der Typ der von den Schlüsselauswahlfunktionen zurückgegebenen Schlüssel. + Der Typ der Ergebniselemente. + + , , , oder ist null. + + + Korreliert die Elemente von zwei Sequenzen auf der Grundlage von übereinstimmenden Schlüsseln.Schlüssel werden mithilfe eines angegebenen verglichen. + Ein , für das Elemente vom Typ durch Ausführen eines inneren Joins von zwei Sequenzen ermittelt werden. + Die erste zu verknüpfende Sequenz. + Die Sequenz, die mit der ersten Sequenz verknüpft werden soll. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der ersten Sequenz. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der zweiten Sequenz. + Eine Funktion zum Erstellen eines Ergebniselements aus zwei übereinstimmenden Elementen. + Ein zum Hashen und Vergleichen von Schlüsseln. + Der Typ der Elemente der ersten Sequenz. + Der Typ der Elemente der zweiten Sequenz. + Der Typ der von den Schlüsselauswahlfunktionen zurückgegebenen Schlüssel. + Der Typ der Ergebniselemente. + + , , , oder ist null. + + + Gibt das letzte Element in einer Sequenz zurück. + Der Wert an der letzten Position . + Ein , dessen letztes Element zurückgegeben werden soll. + Der Typ der Elemente von . + + ist null. + Die Quellsequenz ist leer. + + + Gibt das letzte Element einer Sequenz zurück, das eine angegebene Bedingung erfüllt. + Das letzte Element in , das die von angegebene Überprüfung besteht. + Ein , aus dem ein Element zurückgegeben werden soll. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + Kein Element erfüllt die Bedingung in .- oder -Die Quellsequenz ist leer. + + + Gibt das letzte Element in einer Sequenz zurück, oder einen Standardwert, wenn die Sequenz keine Elemente enthält. + default(), wenn leer ist, andernfalls das letzte Element in . + Ein , dessen letztes Element zurückgegeben werden soll. + Der Typ der Elemente von . + + ist null. + + + Gibt das letzte Element einer Sequenz zurück, das eine Bedingung erfüllt, oder einen Standardwert, wenn ein solches Element nicht gefunden wird. + default(), wenn leer ist oder wenn keine Elemente von der Prädikatfunktion erfolgreich überprüft werden. Andernfalls das letzte Element von , das von der Prädikatfunktion erfolgreich überprüft wird. + Ein , aus dem ein Element zurückgegeben werden soll. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Gibt ein zurück, das die Gesamtanzahl der Elemente in einer Sequenz darstellt. + Die Anzahl der Elemente in . + Ein , das die zu zählenden Elemente enthält. + Der Typ der Elemente von . + + ist null. + Die Anzahl der Elemente überschreitet . + + + Gibt ein zurück, das die Anzahl der Elemente in einer Sequenz darstellt, die eine Bedingung erfüllen. + Die Anzahl der Elemente in , die die Bedingung in der Prädikatfunktion erfüllen. + Ein , das die zu zählenden Elemente enthält. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + Die Anzahl der übereinstimmenden Elemente überschreitet . + + + Gibt den Höchstwert in einem generischen zurück. + Der Höchstwert in der Sequenz. + Eine Sequenz von Werten, deren Höchstwert bestimmt werden soll. + Der Typ der Elemente von . + + ist null. + + + Ruft für jedes Element eines generischen eine Projektionsfunktion auf und gibt den höchsten Ergebniswert zurück. + Der Höchstwert in der Sequenz. + Eine Sequenz von Werten, deren Höchstwert bestimmt werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + Der Typ des Werts, der von der durch dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Gibt den Mindestwert eines generischen zurück. + Der Mindestwert in der Sequenz. + Eine Sequenz von Werten, deren Mindestwert bestimmt werden soll. + Der Typ der Elemente von . + + ist null. + + + Ruft für jedes Element eines generischen eine Projektionsfunktion auf und gibt den niedrigsten Ergebniswert zurück. + Der Mindestwert in der Sequenz. + Eine Sequenz von Werten, deren Mindestwert bestimmt werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + Der Typ des Werts, der von der durch dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Filtert die Elemente eines anhand eines angegebenen Typs. + Eine Auflistung, die die Elemente aus mit dem Typ enthält. + Ein , dessen Elemente gefiltert werden sollen. + Der Typ, nach dem die Elemente der Sequenz gefiltert werden sollen. + + ist null. + + + Sortiert die Elemente einer Sequenz in aufsteigender Reihenfolge nach einem Schlüssel. + Ein , dessen Elemente nach einem Schlüssel sortiert werden. + Eine Sequenz von anzuordnenden Werten. + Eine Funktion zum Extrahieren eines Schlüssels aus einem Element. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der durch dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Sortiert die Elemente einer Sequenz mithilfe eines angegebenen Vergleichs in aufsteigender Reihenfolge. + Ein , dessen Elemente nach einem Schlüssel sortiert werden. + Eine Sequenz von anzuordnenden Werten. + Eine Funktion zum Extrahieren eines Schlüssels aus einem Element. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der durch dargestellten Funktion zurückgegeben wird. + + , oder ist null. + + + Sortiert die Elemente einer Sequenz in absteigender Reihenfolge nach einem Schlüssel. + Ein , dessen Elemente in absteigender Reihenfolge nach einem Schlüssel sortiert werden. + Eine Sequenz von anzuordnenden Werten. + Eine Funktion zum Extrahieren eines Schlüssels aus einem Element. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der durch dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Sortiert die Elemente einer Sequenz mithilfe eines angegebenen Vergleichs in absteigender Reihenfolge. + Ein , dessen Elemente in absteigender Reihenfolge nach einem Schlüssel sortiert werden. + Eine Sequenz von anzuordnenden Werten. + Eine Funktion zum Extrahieren eines Schlüssels aus einem Element. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der durch dargestellten Funktion zurückgegeben wird. + + , oder ist null. + + + Kehrt die Reihenfolge der Elemente in einer Sequenz um. + Ein , dessen Elemente den Elementen der Eingabesequenz in umgekehrter Reihenfolge entsprechen. + Eine umzukehrende Sequenz von Werten. + Der Typ der Elemente von . + + ist null. + + + Projiziert jedes Element einer Sequenz in ein neues Format. + Ein , dessen Elemente das Ergebnis des Aufrufs einer Projektionsfunktion für jedes Element von sind. + Eine Sequenz von zu projizierenden Werten. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + Der Typ des Werts, der von der durch dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Projiziert jedes Element einer Sequenz in ein neues Format, indem der Index des Elements integriert wird. + Ein , dessen Elemente das Ergebnis des Aufrufs einer Projektionsfunktion für jedes Element von sind. + Eine Sequenz von zu projizierenden Werten. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + Der Typ des Werts, der von der durch dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Projiziert jedes Element einer Sequenz in ein und ruft für jedes Element darin eine Ergebnisauswahlfunktion auf.Die Ergebniswerte aus jeder Zwischensequenz werden zu einer einzigen eindimensionalen Sequenz zusammengefasst und zurückgegeben. + Ein , dessen Elemente erzeugt werden, indem für jedes Element von die 1:n-Projektionsfunktion aufgerufen wird und dann jedes so erzeugte Element der Sequenz und sein entsprechendes -Element einem Ergebniselement zugeordnet werden. + Eine Sequenz von zu projizierenden Werten. + Eine Projektionsfunktion, die auf jedes Element der Eingabesequenz angewendet werden soll. + Eine Projektionsfunktion, die auf jedes Element jeder Zwischensequenz angewendet werden soll. + Der Typ der Elemente von . + Der Typ der Zwischenelemente, die von der durch dargestellten Funktion erfasst werden. + Der Typ der Elemente in der resultierenden Sequenz. + + , oder ist null. + + + Projiziert jedes Element einer Sequenz in ein und fasst die resultierenden Sequenzen in einer einzigen Sequenz zusammen. + Ein , dessen Elemente das Ergebnis des Aufrufs einer 1:n-Projektionsfunktion für jedes Element der Eingabesequenz sind. + Eine Sequenz von zu projizierenden Werten. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + Der Typ der Elemente der Sequenz, die von der durch dargestellten Funktion zurückgegeben werden. + + oder ist null. + + + Projiziert jedes Element einer Sequenz in ein , das den Index des Quellelements enthält, von dem es erzeugt wurde.Für jedes Element jeder Zwischensequenz wird eine Ergebnisauswahlfunktion aufgerufen, und die Ergebniswerte werden zu einer einzigen eindimensionale Sequenz zusammengefasst und zurückgegeben. + Ein , dessen Elemente erzeugt werden, indem für jedes Element von die 1:n-Projektionsfunktion aufgerufen wird und dann jedes so erzeugte Element der Sequenz und sein entsprechendes -Element einem Ergebniselement zugeordnet werden. + Eine Sequenz von zu projizierenden Werten. + Eine Projektionsfunktion, die auf jedes Element der Eingabesequenz angewendet werden soll. Der zweite Parameter der Funktion stellt den Index des Quellelements dar. + Eine Projektionsfunktion, die auf jedes Element jeder Zwischensequenz angewendet werden soll. + Der Typ der Elemente von . + Der Typ der Zwischenelemente, die von der durch dargestellten Funktion erfasst werden. + Der Typ der Elemente in der resultierenden Sequenz. + + , oder ist null. + + + Projiziert jedes Element einer Sequenz in ein und fasst die resultierenden Sequenzen in einer einzigen Sequenz zusammen.Der Index jedes Quellelements wird im projizierten Format des jeweiligen Elements verwendet. + Ein , dessen Elemente das Ergebnis des Aufrufs einer 1:n-Projektionsfunktion für jedes Element der Eingabesequenz sind. + Eine Sequenz von zu projizierenden Werten. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. Der zweite Parameter der Funktion stellt den Index des Quellelements dar. + Der Typ der Elemente von . + Der Typ der Elemente der Sequenz, die von der durch dargestellten Funktion zurückgegeben werden. + + oder ist null. + + + Bestimmt mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Elementen, ob zwei Sequenzen gleich sind. + true, wenn die zwei Quellsequenzen von gleicher Länge sind und ihre entsprechenden Elemente als gleich gelten, andernfalls false. + Ein dessen Elemente mit den Elementen von verglichen werden sollen. + Ein , dessen Elemente mit den Elementen der ersten Sequenz verglichen werden sollen. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Bestimmt mithilfe eines angegebenen zum Vergleichen von Elementen, ob zwei Sequenzen gleich sind. + true, wenn die zwei Quellsequenzen von gleicher Länge sind und ihre entsprechenden Elemente als gleich gelten, andernfalls false. + Ein dessen Elemente mit den Elementen von verglichen werden sollen. + Ein , dessen Elemente mit den Elementen der ersten Sequenz verglichen werden sollen. + Ein , der zum Vergleichen von Elementen verwendet werden soll. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Gibt das einzige Element einer Sequenz zurück und löst eine Ausnahme aus, wenn nicht genau ein Element in der Sequenz vorhanden ist. + Das einzige Element der Eingabesequenz. + Ein , dessen einziges Element zurückgegeben werden soll. + Der Typ der Elemente von . + + ist null. + + hat mehr als ein Element. + + + Gibt das einzige Element einer Sequenz zurück, das eine angegebene Bedingung erfüllt, und löst eine Ausnahme aus, wenn mehrere solche Elemente vorhanden sind. + Das einzige Element der Eingabesequenz, das die Bedingung in erfüllt. + Ein , aus dem ein einzelnes Element zurückgegeben werden soll. + Eine Funktion zum Überprüfen eines Elements auf eine Bedingung. + Der Typ der Elemente von . + + oder ist null. + Kein Element erfüllt die Bedingung in .- oder -Die Bedingung in wird von mehreren Elementen erfüllt - oder -Die Quellsequenz ist leer. + + + Gibt das einzige Element einer Sequenz zurück oder einen Standardwert, wenn die Sequenz leer ist. Diese Methode löst eine Ausnahme aus, wenn mehrere Elemente in der Sequenz vorhanden sind. + Das einzige Element der Eingabesequenz oder default(), wenn die Sequenz keine Elemente enthält. + Ein , dessen einziges Element zurückgegeben werden soll. + Der Typ der Elemente von . + + ist null. + + hat mehr als ein Element. + + + Gibt das einzige Element einer Sequenz zurück, das eine angegebene Bedingung erfüllt, oder einen Standardwert, wenn kein solches Element vorhanden ist. Diese Methode löst eine Ausnahme aus, wenn mehrere Elemente die Bedingung erfüllen. + Das einzige Element der Eingabesequenz, das die Bedingung in erfüllt, oder default(), wenn ein solches Element nicht gefunden wird. + Ein , aus dem ein einzelnes Element zurückgegeben werden soll. + Eine Funktion zum Überprüfen eines Elements auf eine Bedingung. + Der Typ der Elemente von . + + oder ist null. + Die Bedingung in wird von mehreren Elementen erfüllt + + + Umgeht eine festgelegte Anzahl von Elementen in einer Sequenz und gibt dann die übrigen Elemente zurück. + Ein , das Elemente enthält, die nach dem angegebenen Index in der Eingabesequenz auftreten. + Ein , aus dem Elemente zurückgegeben werden sollen. + Die Anzahl der Elemente, die übersprungen werden sollen, bevor die übrigen Elemente zurückgegeben werden. + Der Typ der Elemente von . + + ist null. + + + Umgeht Elemente in einer Sequenz, solange eine angegebene Bedingung true ist, und gibt dann die übrigen Elemente zurück. + Ein , das Elemente aus ab dem ersten Element in der linearen Reihe enthält, das die in angegebene Überprüfung nicht besteht. + Ein , aus dem Elemente zurückgegeben werden sollen. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Umgeht Elemente in einer Sequenz, solange eine angegebene Bedingung true ist, und gibt dann die übrigen Elemente zurück.In der Logik der Prädikatfunktion wird der Index des Elements verwendet. + Ein , das Elemente aus ab dem ersten Element in der linearen Reihe enthält, das die in angegebene Überprüfung nicht besteht. + Ein , aus dem Elemente zurückgegeben werden sollen. + Eine Funktion zum Überprüfen jedes Elements auf eine Bedingung. Der zweite Parameter der Funktion stellt den Index des Quellelements dar. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet die Summe einer Sequenz von -Werten. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, deren Summe berechnet werden soll. + + ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, deren Summe berechnet werden soll. + + ist null. + + + Berechnet die Summe einer Sequenz von -Werten. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, deren Summe berechnet werden soll. + + ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, deren Summe berechnet werden soll. + + ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, die NULL zulassen und deren Summe berechnet werden soll. + + ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, die NULL zulassen und deren Summe berechnet werden soll. + + ist null. + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, die NULL zulassen und deren Summe berechnet werden soll. + + ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, die NULL zulassen und deren Summe berechnet werden soll. + + ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, die NULL zulassen und deren Summe berechnet werden soll. + + ist null. + + + Berechnet die Summe einer Sequenz von -Werten. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, deren Summe berechnet werden soll. + + ist null. + + + Berechnet die Summe einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet die Summe einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet die Summe einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Gibt eine angegebene Anzahl von zusammenhängenden Elementen ab dem Anfang einer Sequenz zurück. + Ein , das die angegebene Anzahl von Elementen ab dem Anfang von enthält. + Die Sequenz, aus der Elemente zurückgegeben werden sollen. + Die Anzahl der zurückzugebenden Elemente. + Der Typ der Elemente von . + + ist null. + + + Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung true ist. + Ein , das Elemente aus der Eingabesequenz enthält, die vor dem Element auftreten, bei dem die von angegebene Überprüfung nicht mehr erfolgreich ist. + Die Sequenz, aus der Elemente zurückgegeben werden sollen. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung true ist.In der Logik der Prädikatfunktion wird der Index des Elements verwendet. + Ein , das Elemente aus der Eingabesequenz enthält, die vor dem Element auftreten, bei dem die von angegebene Überprüfung nicht mehr erfolgreich ist. + Die Sequenz, aus der Elemente zurückgegeben werden sollen. + Eine Funktion zum Überprüfen jedes Elements auf eine Bedingung. Der zweite Parameter der Funktion stellt den Index des Elements in der Quellsequenz dar. + Der Typ der Elemente von . + + oder ist null. + + + Führt eine nachfolgende Sortierung der Elemente in einer Sequenz in aufsteigender Reihenfolge nach einem Schlüssel durch. + Ein , dessen Elemente nach einem Schlüssel sortiert werden. + Ein mit den zu sortierenden Elementen. + Eine Funktion zum Extrahieren eines Schlüssels aus jedem Element. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der von dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Führt mithilfe eines angegebenen Vergleichs eine nachfolgende Sortierung der Elemente in einer Sequenz in aufsteigender Reihenfolge durch. + Ein , dessen Elemente nach einem Schlüssel sortiert werden. + Ein mit den zu sortierenden Elementen. + Eine Funktion zum Extrahieren eines Schlüssels aus jedem Element. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der von dargestellten Funktion zurückgegeben wird. + + , oder ist null. + + + Führt eine nachfolgende Sortierung der Elemente in einer Sequenz in absteigender Reihenfolge nach einem Schlüssel durch. + Ein , dessen Elemente in absteigender Reihenfolge nach einem Schlüssel sortiert werden. + Ein mit den zu sortierenden Elementen. + Eine Funktion zum Extrahieren eines Schlüssels aus jedem Element. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der von dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Führt mithilfe eines angegebenen Vergleichs eine nachfolgende Sortierung der Elemente in einer Sequenz in absteigender Reihenfolge durch. + Eine Auflistung, deren Elemente in absteigender Reihenfolge nach einem Schlüssel sortiert werden. + Ein mit den zu sortierenden Elementen. + Eine Funktion zum Extrahieren eines Schlüssels aus jedem Element. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der -Funktion zurückgegeben wird. + + , oder ist null. + + + Erzeugt die Vereinigungsmenge von zwei Sequenzen mithilfe des Standardgleichheitsvergleichs. + Ein , das die Elemente aus beiden Eingabesequenzen ohne Duplikate enthält. + Eine Sequenz, deren unterschiedliche Elemente den ersten Satz für die Gesamtmengenbildung darstellen. + Eine Sequenz, deren unterschiedliche Elemente den zweiten Satz für die Gesamtmengenbildung darstellen. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Erzeugt mithilfe eines angegebenen die Vereinigungsmenge von zwei Sequenzen. + Ein , das die Elemente aus beiden Eingabesequenzen ohne Duplikate enthält. + Eine Sequenz, deren unterschiedliche Elemente den ersten Satz für die Gesamtmengenbildung darstellen. + Eine Sequenz, deren unterschiedliche Elemente den zweiten Satz für die Gesamtmengenbildung darstellen. + Ein zum Vergleichen von Werten. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Filtert eine Sequenz von Werten nach einem Prädikat. + Ein mit Elementen aus der Eingabesequenz, die die von angegebene Bedingung erfüllen. + Ein zu filterndes . + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Filtert eine Sequenz von Werten nach einem Prädikat.In der Logik der Prädikatfunktion wird der Index der einzelnen Elemente verwendet. + Ein mit Elementen aus der Eingabesequenz, die die von angegebene Bedingung erfüllen. + Ein zu filterndes . + Eine Funktion zum Überprüfen jedes Elements auf eine Bedingung. Der zweite Parameter der Funktion stellt den Index des Elements in der Quellsequenz dar. + Der Typ der Elemente von . + + oder ist null. + + + Führt zwei Sequenzen mit der angegebenen Prädikatfunktion zusammen. + Ein , das die zusammengeführten Elemente der beiden Eingabesequenzen enthält. + Die erste Sequenz, die zusammengeführt werden soll. + Die zweite Sequenz, die zusammengeführt werden soll. + Eine Funktion, die angibt, wie die Elemente der zwei Sequenzen zusammengeführt werden sollen. + Der Typ der Elemente der ersten Eingabesequenz. + Der Typ der Elemente der zweiten Eingabesequenz. + Der Typ der Elemente in der Ergebnissequenz. + + oder ist null. + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netcore50/es/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/es/System.Linq.Queryable.xml new file mode 100644 index 0000000..091a1a0 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/es/System.Linq.Queryable.xml @@ -0,0 +1,1375 @@ + + + + System.Linq.Queryable + + + + Representa un árbol de expresión y proporciona la funcionalidad para ejecutar este árbol después de rescribirlo. + + + Inicializa una nueva instancia de la clase . + + + Representa un árbol de expresión y proporciona la funcionalidad para ejecutar este árbol después de rescribirlo. + Tipo de datos del valor que es el resultado de ejecutar el árbol de expresión. + + + Inicializa una nueva instancia de la clase . + Árbol de expresión para asociar a la nueva instancia. + + + Representa una clase como origen de datos de . + + + Inicializa una nueva instancia de la clase . + + + Representa una colección como origen de los datos . + Tipo de los datos de la colección. + + + Inicializa una nueva instancia de la clase y la asocia con una colección . + Una colección para asociar a la nueva instancia. + + + Inicializa una nueva instancia de la clase y la asocia con un árbol de expresión especificado. + Árbol de expresión para asociar a la nueva instancia. + + + Devuelve un enumerador que puede recorrer en iteración la colección asociada o, si es nulo, la colección que es el resultado de rescribir el árbol de expresión asociado como consulta en un origen de datos y de ejecutarlo. + Enumerador que se puede utilizar para recorrer en iteración el origen de datos asociado. + + + Devuelve un enumerador que puede recorrer en iteración la colección asociada o, si es nulo, la colección que es el resultado de rescribir el árbol de expresión asociado como consulta en un origen de datos y de ejecutarlo. + Enumerador que se puede utilizar para recorrer en iteración el origen de datos asociado. + + + Obtiene el tipo de datos de la colección que esta instancia representa. + Tipo de datos de la colección que esta instancia representa. + + + Obtiene el árbol de expresión que está asociado o que representa esta instancia. + Árbol de expresión que está asociado o que representa esta instancia. + + + Obtiene el proveedor de consultas que está asociado a esta instancia. + Proveedor de consultas que está asociado a esta instancia. + + + Construye un nuevo objeto y lo asocia a un árbol de expresión especificado que representa una colección de datos. + Objeto EnumerableQuery asociado a . + Árbol de expresión que se va a ejecutar. + Tipo de datos de la colección que representa. + + + Construye un nuevo objeto y lo asocia a un árbol de expresión especificado que representa una colección de datos. + Objeto asociado a . + Árbol de expresión que representa una colección de datos. + + + Ejecuta una expresión después de rescribirla para llamar a los métodos en lugar de a los métodos en cualquier origen de datos enumerable que no pueda ser consultado por los métodos . + Valor que es el resultado de ejecutar . + Árbol de expresión que se va a ejecutar. + Tipo de datos de la colección que representa. + + + Ejecuta una expresión después de rescribirla para llamar a los métodos en lugar de a los métodos en cualquier origen de datos enumerable que no pueda ser consultado por los métodos . + Valor que es el resultado de ejecutar . + Árbol de expresión que se va a ejecutar. + + + Devuelve una representación textual de la colección enumerable o, si es null, del árbol de expresión asociado a esta instancia. + Representación textual de la colección enumerable o, si es null, del árbol de expresión asociado a esta instancia. + + + Proporciona un conjunto de métodos static (Shared en Visual Basic) para consultar estructuras de datos que implementan . + + + Aplica una función de acumulador a una secuencia. + Valor final del acumulador. + Secuencia a la que se va a agregar. + Función de acumulador que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + no contiene elementos. + + + Aplica una función de acumulador a una secuencia.El valor de inicialización especificado se utiliza como valor de inicio del acumulador. + Valor final del acumulador. + Secuencia a la que se va a agregar. + Valor de inicio del acumulador. + Función de acumulador que se va a invocar en cada elemento. + Tipo de los elementos de . + Tipo del valor del acumulador. + + o es null. + + + Aplica una función de acumulador a una secuencia.El valor de inicialización especificado se utiliza como valor inicial del acumulador y la función especificada se utiliza para seleccionar el valor resultante. + El valor final del acumulador transformado. + Secuencia a la que se va a agregar. + Valor de inicio del acumulador. + Función de acumulador que se va a invocar en cada elemento. + Función que va a transformar el valor final del acumulador en el valor del resultado. + Tipo de los elementos de . + Tipo del valor del acumulador. + Tipo del valor resultante. + + o o es null. + + + Determina si todos los elementos de una secuencia satisfacen una condición. + true si todos los elementos de la secuencia de origen pasan la prueba del predicado especificado o si la secuencia está vacía; de lo contrario, false. + Secuencia en cuyos elementos se va a comprobar una condición. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Determina si una secuencia contiene elementos. + true si la secuencia de origen contiene elementos; de lo contrario, false. + Secuencia que se va a comprobar si está vacía. + Tipo de los elementos de . + + es null. + + + Determina si algún elemento de una secuencia satisface una condición. + true si algún elemento de la secuencia de origen pasa la prueba del predicado especificado; de lo contrario, false. + Secuencia en cuyos elementos se va a comprobar una condición. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Convierte una interfaz genérica en una interfaz genérica. + + que representa la secuencia de entrada. + Secuencia que se va a convertir. + Tipo de los elementos de . + + es null. + + + Convierte una interfaz en . + + que representa la secuencia de entrada. + Secuencia que se va a convertir. + + no implementa para algunos parámetros . + + es null. + + + Calcula el promedio de una secuencia de valores . + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + + es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores . + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + + es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores . + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + + es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores . + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + + es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL. + Promedio de la secuencia de valores o null si la secuencia de origen está vacía o contiene sólo valores null. + Secuencia de valores que aceptan valores NULL cuyo promedio se va a calcular. + + es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL. + Promedio de la secuencia de valores o null si la secuencia de origen está vacía o contiene sólo valores null. + Secuencia de valores que aceptan valores NULL cuyo promedio se va a calcular. + + es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL. + Promedio de la secuencia de valores o null si la secuencia de origen está vacía o contiene sólo valores null. + Secuencia de valores que aceptan valores NULL cuyo promedio se va a calcular. + + es null. + + + Calcular el promedio de una secuencia de valores que aceptan valores NULL. + Promedio de la secuencia de valores o null si la secuencia de origen está vacía o contiene sólo valores null. + Una secuencia de valores que aceptan valores NULL cuyo promedio se va a calcular. + + es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL. + Promedio de la secuencia de valores o null si la secuencia de origen está vacía o contiene sólo valores null. + Secuencia de valores que aceptan valores NULL cuyo promedio se va a calcular. + + es null. + + + Calcula el promedio de una secuencia de valores . + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + + es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + El promedio de la secuencia de valores. + Secuencia de valores que se utilizan para calcular un promedio. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + Promedio de la secuencia de valores o null si la secuencia está vacía o contiene sólo valores null. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + Promedio de la secuencia de valores o null si la secuencia está vacía o contiene sólo valores null. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + Promedio de la secuencia de valores o null si la secuencia está vacía o contiene sólo valores null. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + Promedio de la secuencia de valores o null si la secuencia está vacía o contiene sólo valores null. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + Promedio de la secuencia de valores o null si la secuencia está vacía o contiene sólo valores null. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula el promedio de una secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + no contiene elementos. + + + Convierte los elementos de en el tipo especificado. + + que contiene cada elemento de la secuencia de origen convertido al tipo especificado. + + que contiene los elementos que se van a convertir. + Tipo al que se convierten los elementos de . + + es null. + Un elemento de la secuencia no se puede convertir al tipo . + + + Concatena dos secuencias. + + que contiene los elementos concatenados de las dos secuencias de entrada. + Primera secuencia que se va a concatenar. + Secuencia que se va a concatenar con la primera secuencia. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Determina si una secuencia contiene un elemento especificado utilizando el comparador de igualdad predeterminado. + true si la secuencia de entrada contiene un elemento que tiene el valor especificado; de lo contrario, false. + + en el que se va a buscar . + Objeto que se va a buscar en la secuencia. + Tipo de los elementos de . + + es null. + + + Determina si una secuencia contiene un elemento especificado utilizando un objeto determinado. + true si la secuencia de entrada contiene un elemento que tiene el valor especificado; de lo contrario, false. + + en el que se va a buscar . + Objeto que se va a buscar en la secuencia. + + para comparar valores. + Tipo de los elementos de . + + es null. + + + Devuelve el número de elementos de una secuencia. + El número de elementos de la secuencia de entrada. + + que contiene los elementos que se van a contar. + Tipo de los elementos de . + + es null. + El número de elementos de es mayor que . + + + Devuelve el número de elementos de la secuencia especificada que satisfacen una condición. + El número de elementos de la secuencia que satisfacen la condición de la función de predicado. + + que contiene los elementos que se van a contar. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + El número de elementos de es mayor que . + + + Devuelve los elementos de la secuencia especificada o el valor predeterminado del parámetro de tipo en una colección singleton si la secuencia está vacía. + + que contiene default() si está vacío; de lo contrario, . + + para el que se va a devolver un valor predeterminado si está vacío. + Tipo de los elementos de . + + es null. + + + Devuelve los elementos de la secuencia especificada o el valor especificado en una colección singleton si la secuencia está vacía. + + que contiene si está vacío; de lo contrario, . + + para el que se va a devolver el valor especificado si está vacío. + Valor que se va a devolver si la secuencia está vacía. + Tipo de los elementos de . + + es null. + + + Devuelve diversos elementos de una secuencia utilizando el comparador de igualdad predeterminado para comparar los valores. + Una interfaz que contiene diversos elementos de . + + del que se van a quitar los elementos duplicados. + Tipo de los elementos de . + + es null. + + + Devuelve diversos elementos de una secuencia utilizando un objeto especificado para comparar los valores. + Una interfaz que contiene diversos elementos de . + + del que se van a quitar los elementos duplicados. + + para comparar valores. + Tipo de los elementos de . + + o es null. + + + Devuelve el elemento situado en un índice especificado de una secuencia. + El elemento situado en la posición especificada de . + + del que se va a devolver un elemento. + Índice de base cero del elemento que se debe recuperar. + Tipo de los elementos de . + + es null. + + es menor que cero. + + + Devuelve el elemento situado en un índice especificado de una secuencia o un valor predeterminado si el índice está fuera del intervalo. + default () si está fuera de los límites de ; de lo contrario, el elemento situado en la posición especificada de . + + del que se va a devolver un elemento. + Índice de base cero del elemento que se debe recuperar. + Tipo de los elementos de . + + es null. + + + Proporciona la diferencia de conjuntos de dos secuencias utilizando el comparador de igualdad predeterminado para comparar los valores. + + que contiene la diferencia de conjuntos de las dos secuencias. + + cuyos elementos que no se encuentren en se van a devolver. + + cuyos elementos que se encuentren también en la primera secuencia no aparecerán en la secuencia devuelta. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Proporciona la diferencia de conjuntos de dos secuencias utilizando el objeto especificado para comparar los valores. + + que contiene la diferencia de conjuntos de las dos secuencias. + + cuyos elementos que no se encuentren en se van a devolver. + + cuyos elementos que se encuentren también en la primera secuencia no aparecerán en la secuencia devuelta. + + para comparar valores. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Devuelve el primer elemento de una secuencia. + El primer elemento de . + + del que se va a devolver el primer elemento. + Tipo de los elementos de . + + es null. + La secuencia de origen está vacía. + + + Devuelve el primer elemento de una secuencia que satisface una condición especificada. + El primer elemento de que pasa la prueba de . + + del que se va a devolver un elemento. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + Ningún elemento satisface la condición de .O bienLa secuencia de origen está vacía. + + + Devuelve el primer elemento de una secuencia o un valor predeterminado si la secuencia no contiene elementos. + default () si está vacío; de lo contrario, el primer elemento de . + + del que se va a devolver el primer elemento. + Tipo de los elementos de . + + es null. + + + Devuelve el primer elemento de una secuencia que satisface una condición especificada o un valor predeterminado si no se encuentra ningún elemento. + default () si está vacío o si ningún elemento pasa la prueba especificada en ; de lo contrario, el primer elemento de que pasa la prueba especificada en . + + del que se va a devolver un elemento. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Agrupa los elementos de una secuencia según una función del selector de claves especificada. + IQueryable<IGrouping<TKey, TSource>> en C# o IQueryable(Of IGrouping(Of TKey, TSource)) en Visual Basic donde cada objeto contiene una secuencia de objetos y una clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + + o es null. + + + Agrupa los elementos de una secuencia según una función del selector de calves especificada y compara las claves utilizando un comparador especificado. + IQueryable<IGrouping<TKey, TSource>> en C# o IQueryable(Of IGrouping(Of TKey, TSource)) en Visual Basic donde cada contiene una secuencia de objetos y una clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + + o o es null. + + + Agrupa los elementos de una secuencia según una función del selector de claves especificada y proyecta los elementos de cada grupo utilizando una función determinada. + IQueryable<IGrouping<TKey, TElement>> en C# o IQueryable(Of IGrouping(Of TKey, TElement)) en Visual Basic donde cada contiene una secuencia de objetos de tipo y una clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Función que asigna cada elemento de origen a un elemento de . + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + Tipo de los elementos de cada . + + o o es null. + + + Agrupa los elementos de una secuencia y proyecta los elementos de cada grupo utilizando una función especificada.Los valores de clave se comparan utilizando un comparador especificado. + IQueryable<IGrouping<TKey, TElement>> en C# o IQueryable(Of IGrouping(Of TKey, TElement)) en Visual Basic donde cada contiene una secuencia de objetos de tipo y una clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Función que asigna cada elemento de origen a un elemento de . + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + Tipo de los elementos de cada . + + o o o es null. + + + Agrupa los elementos de una secuencia según una función del selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave.Los elementos de cada grupo se proyectan utilizando una función determinada. + Objeto T:System.Linq.IQueryable`1 que tiene un argumento de tipo y en el que cada elemento representa una proyección sobre un grupo y su clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Función que asigna cada elemento de origen a un elemento de . + Función que va a crear un valor de resultado a partir de cada grupo. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + Tipo de los elementos de cada . + Tipo del valor de resultado devuelto por . + + o o o es null. + + + Agrupa los elementos de una secuencia según una función del selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave.Las claves se comparan utilizando un comparador especificado y los elementos de cada grupo se proyectan utilizando una función determinada. + Objeto T:System.Linq.IQueryable`1 que tiene un argumento de tipo y en el que cada elemento representa una proyección sobre un grupo y su clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Función que asigna cada elemento de origen a un elemento de . + Función que va a crear un valor de resultado a partir de cada grupo. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + Tipo de los elementos de cada . + Tipo del valor de resultado devuelto por . + + o o o o es null. + + + Agrupa los elementos de una secuencia según una función del selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave. + Objeto T:System.Linq.IQueryable`1 que tiene un argumento de tipo y en el que cada elemento representa una proyección sobre un grupo y su clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Función que va a crear un valor de resultado a partir de cada grupo. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + Tipo del valor de resultado devuelto por . + + o o es null. + + + Agrupa los elementos de una secuencia según una función del selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave.Las claves se comparan utilizando un comparador determinado. + Objeto T:System.Linq.IQueryable`1 que tiene un argumento de tipo y en el que cada elemento representa una proyección sobre un grupo y su clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Función que va a crear un valor de resultado a partir de cada grupo. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + Tipo del valor de resultado devuelto por . + + o o o es null. + + + Establece una correlación entre los elementos de dos secuencias basándose en la igualdad de clave y agrupa los resultados.El comparador de igualdad predeterminado se usa para comparar claves. + + que contiene elementos de tipo que se han obtenido al realizar una combinación agrupada de dos secuencias. + Primera secuencia que se va a combinar. + Secuencia que se va a combinar con la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la segunda secuencia. + Función para crear un elemento de resultado a partir de un elemento de la primera secuencia y una colección de elementos coincidentes de la segunda. + Tipo de los elementos de la primera secuencia. + Tipo de los elementos de la segunda secuencia. + Tipo de las claves devueltas por las funciones del selector de claves. + Tipo de los elementos del resultado. + + o o o o es null. + + + Establece una correlación entre los elementos de dos secuencias basándose en la igualdad de clave y agrupa los resultados.Se usa un objeto especificado para comparar claves. + + que contiene elementos de tipo que se han obtenido al realizar una combinación agrupada de dos secuencias. + Primera secuencia que se va a combinar. + Secuencia que se va a combinar con la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la segunda secuencia. + Función para crear un elemento de resultado a partir de un elemento de la primera secuencia y una colección de elementos coincidentes de la segunda. + Comparador que va a aplicar un algoritmo hash y a comparar las claves. + Tipo de los elementos de la primera secuencia. + Tipo de los elementos de la segunda secuencia. + Tipo de las claves devueltas por las funciones del selector de claves. + Tipo de los elementos del resultado. + + o o o o es null. + + + Proporciona la intersección de conjuntos de dos secuencias utilizando el comparador de igualdad predeterminado para comparar los valores. + Una secuencia que contiene la intersección de conjuntos de las dos secuencias. + Secuencia de la que se devuelven los elementos que también aparecen en . + Secuencia de la que se devuelven los elementos que también aparecen en la primera secuencia. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Proporciona la intersección de conjuntos de dos secuencias utilizando el objeto especificado para comparar los valores. + Una interfaz que contiene la intersección de conjuntos de las dos secuencias. + Una interfaz de la que se devuelven los elementos que también aparecen en . + Una interfaz de la que se devuelven los elementos que también aparecen en la primera secuencia. + + para comparar valores. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Establece la correlación de dos secuencias basándose en claves coincidentes.El comparador de igualdad predeterminado se usa para comparar claves. + Una interfaz que tiene elementos de tipo que se han obtenido al realizar una combinación interna de dos secuencias. + Primera secuencia que se va a combinar. + Secuencia que se va a combinar con la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la segunda secuencia. + Función que va a crear un elemento de resultado a partir de dos elementos coincidentes. + Tipo de los elementos de la primera secuencia. + Tipo de los elementos de la segunda secuencia. + Tipo de las claves devueltas por las funciones del selector de claves. + Tipo de los elementos del resultado. + + o o o o es null. + + + Establece la correlación de dos secuencias basándose en claves coincidentes.Se usa un objeto especificado para comparar claves. + Una interfaz que tiene elementos de tipo que se han obtenido al realizar una combinación interna de dos secuencias. + Primera secuencia que se va a combinar. + Secuencia que se va a combinar con la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la segunda secuencia. + Función que va a crear un elemento de resultado a partir de dos elementos coincidentes. + + que va a aplicar un algoritmo hash y a comparar las claves. + Tipo de los elementos de la primera secuencia. + Tipo de los elementos de la segunda secuencia. + Tipo de las claves devueltas por las funciones del selector de claves. + Tipo de los elementos del resultado. + + o o o o es null. + + + Devuelve el último elemento de una secuencia. + El valor de la última posición de . + + del que se va a devolver el último elemento. + Tipo de los elementos de . + + es null. + La secuencia de origen está vacía. + + + Devuelve el último elemento de una secuencia que satisface una condición especificada. + El último elemento de que pasa la prueba especificada en . + + del que se va a devolver un elemento. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + Ningún elemento satisface la condición de .O bienLa secuencia de origen está vacía. + + + Devuelve el último elemento de una secuencia o un valor predeterminado si la secuencia no contiene elementos. + default () si está vacío; de lo contrario, el último elemento de . + + del que se va a devolver el último elemento. + Tipo de los elementos de . + + es null. + + + Devuelve el último elemento de una secuencia que satisface una condición o un valor predeterminado si no se encuentra dicho elemento. + default () si está vacío o si ningún elemento pasa la prueba de la función de predicado; de lo contrario, el último elemento de que pasa la prueba de la función de predicado. + + del que se va a devolver un elemento. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Devuelve un valor que representa el número total de elementos de una secuencia. + El número de elementos de . + + que contiene los elementos que se van a contar. + Tipo de los elementos de . + + es null. + Número de elementos supera el valor . + + + Devuelve un valor que representa el número de elementos de una secuencia que satisfacen una condición. + El número de elementos de que satisfacen la condición de la función de predicado. + + que contiene los elementos que se van a contar. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + El número de elementos que coinciden supera el valor . + + + Devuelve el valor máximo de una interfaz genérica. + El valor máximo de la secuencia. + Secuencia de valores cuyo valor máximo se va a determinar. + Tipo de los elementos de . + + es null. + + + Invoca una función de proyección en cada elemento de una interfaz genérica y devuelve el valor máximo resultante. + El valor máximo de la secuencia. + Secuencia de valores cuyo valor máximo se va a determinar. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + Tipo del valor devuelto por la función representada por . + + o es null. + + + Devuelve el valor mínimo de una interfaz genérica. + El valor mínimo de la secuencia. + Secuencia de valores cuyo valor mínimo se va a determinar. + Tipo de los elementos de . + + es null. + + + Invoca una función de proyección en cada elemento de una interfaz genérica y devuelve el valor mínimo resultante. + El valor mínimo de la secuencia. + Secuencia de valores cuyo valor mínimo se va a determinar. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + Tipo del valor devuelto por la función representada por . + + o es null. + + + Filtra los elementos de en función de un tipo especificado. + Colección que contiene los elementos de que son de tipo . + + cuyos elementos se van a filtrar. + El tipo según el cual se van a filtrar los elementos de la secuencia. + + es null. + + + Ordena de manera ascendente los elementos de una secuencia en función de una clave. + Una interfaz cuyos elementos se ordenan con arreglo a una clave. + Secuencia de valores que se va a ordenar. + Función para extraer una clave a partir de un elemento. + Tipo de los elementos de . + Tipo de la clave devuelto por la función representada por . + + o es null. + + + Ordena de manera ascendente los elementos de una secuencia utilizando un comparador especificado. + Una interfaz cuyos elementos se ordenan con arreglo a una clave. + Secuencia de valores que se va a ordenar. + Función para extraer una clave a partir de un elemento. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelto por la función representada por . + + o o es null. + + + Ordena de manera descendente los elementos de una secuencia en función de una clave. + Una interfaz cuyos elementos se ordenan de manera descendente con arreglo a una clave. + Secuencia de valores que se va a ordenar. + Función para extraer una clave a partir de un elemento. + Tipo de los elementos de . + Tipo de la clave devuelto por la función representada por . + + o es null. + + + Ordena de manera descendente los elementos de una secuencia utilizando un comparador especificado. + Una interfaz cuyos elementos se ordenan de manera descendente con arreglo a una clave. + Secuencia de valores que se va a ordenar. + Función para extraer una clave a partir de un elemento. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelto por la función representada por . + + o o es null. + + + Invierte el orden de los elementos de una secuencia. + + cuyos elementos se corresponden en orden inverso con los de la secuencia de entrada. + Secuencia de valores que se va a invertir. + Tipo de los elementos de . + + es null. + + + Proyecta cada elemento de una secuencia en un nuevo formulario. + + cuyos elementos son el resultado de invocar una función de proyección en cada elemento de . + Secuencia de valores que se va a proyectar. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + Tipo del valor devuelto por la función representada por . + + o es null. + + + Proyecta cada elemento de una secuencia en un nuevo formulario incorporando el índice del elemento. + + cuyos elementos son el resultado de invocar una función de proyección en cada elemento de . + Secuencia de valores que se va a proyectar. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + Tipo del valor devuelto por la función representada por . + + o es null. + + + Proyecta cada elemento de una secuencia en e invoca una función del selector de resultados en cada elemento.Los valores resultantes de cada secuencia intermedia se combinan en una única secuencia unidimensional y se devuelven. + + cuyos elementos son el resultado de invocar la función de proyección uno a varios en cada elemento de y de asignar a continuación cada uno de los elementos de la secuencia y sus elementos de correspondientes a un elemento de resultado. + Secuencia de valores que se va a proyectar. + Función de proyección que se va a aplicar a cada elemento de la secuencia de entrada. + Función de proyección que se va a aplicar a cada elemento de la secuencia intermedia. + Tipo de los elementos de . + El tipo de los elementos intermedios recopilados por la función representada por . + Tipo de los elementos de la secuencia resultante. + + o o es null. + + + Proyecta cada elemento de una secuencia en una interfaz y combina las secuencias resultantes en una secuencia. + + cuyos elementos son el resultado de invocar una función de proyección uno a varios en cada elemento de la secuencia de entrada. + Secuencia de valores que se va a proyectar. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + Tipo de los elementos de la secuencia devuelta por la función representada por . + + o es null. + + + Proyecta cada elemento de una secuencia en una interfaz que incorpora el índice del elemento de origen que lo generó.Una función del selector de resultados se invoca en cada elemento de todas las secuencias intermedias y, a continuación, los valores resultantes se combinan en una única secuencia unidimensional y se devuelven. + + cuyos elementos son el resultado de invocar la función de proyección uno a varios en cada elemento de y de asignar a continuación cada uno de los elementos de la secuencia y sus elementos de correspondientes a un elemento de resultado. + Secuencia de valores que se va a proyectar. + Función de proyección que se va a aplicar a cada elemento de la secuencia de entrada; el segundo parámetro de esta función representa el índice del elemento de origen. + Función de proyección que se va a aplicar a cada elemento de la secuencia intermedia. + Tipo de los elementos de . + El tipo de los elementos intermedios recopilados por la función representada por . + Tipo de los elementos de la secuencia resultante. + + o o es null. + + + Proyecta cada elemento de una secuencia en una interfaz y combina las secuencias resultantes en una secuencia.El índice de cada elemento de origen se utiliza en el formulario proyectado de ese elemento. + + cuyos elementos son el resultado de invocar una función de proyección uno a varios en cada elemento de la secuencia de entrada. + Secuencia de valores que se va a proyectar. + Función de proyección que se va a aplicar a cada elemento; el segundo parámetro de esta función representa el índice del elemento de origen. + Tipo de los elementos de . + Tipo de los elementos de la secuencia devuelta por la función representada por . + + o es null. + + + Determina si dos secuencias son iguales utilizando el comparador de igualdad predeterminado para comparar los elementos. + true si las dos secuencias de origen tienen la misma longitud y sus elementos correspondientes son iguales; de lo contrario, false. + + cuyos elementos se van a comparar con los de . + + cuyos elementos se van a comparar con los de la primera secuencia. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Determina si dos secuencias son iguales utilizando una interfaz especificada para comparar los elementos. + true si las dos secuencias de origen tienen la misma longitud y sus elementos correspondientes son iguales; de lo contrario, false. + + cuyos elementos se van a comparar con los de . + + cuyos elementos se van a comparar con los de la primera secuencia. + + que se va a utilizar para comparar elementos. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Devuelve el único elemento de una secuencia y produce una excepción si no hay exactamente un elemento en la secuencia. + El único elemento de la secuencia de entrada. + + cuyo único elemento se va a devolver. + Tipo de los elementos de . + + es null. + + tiene más de un elemento. + + + Devuelve el único elemento de una secuencia que cumpla la condición especificada y produce una excepción si más de un elemento la cumple. + El único elemento de la secuencia de entrada que satisface la condición de . + + del que se va a devolver un único elemento. + Función que va a probar si un elemento satisface una condición. + Tipo de los elementos de . + + o es null. + Ningún elemento satisface la condición de .O bienVarios elementos satisfacen la condición de .O bienLa secuencia de origen está vacía. + + + Devuelve el único elemento de una secuencia o un valor predeterminado si la secuencia está vacía; este método produce una excepción si hay más de un elemento en la secuencia. + El único elemento de la secuencia de entrada o default() si la secuencia no contiene ningún elemento. + + cuyo único elemento se va a devolver. + Tipo de los elementos de . + + es null. + + tiene más de un elemento. + + + Devuelve el único elemento de una secuencia que cumpla la condición especificada, o bien, un valor predeterminado si ese elemento no existe; este método produce una excepción si varios elementos cumplen la condición. + El único elemento de la secuencia de entrada que satisface la condición de o default() si no se encuentra dicho elemento. + + del que se va a devolver un único elemento. + Función que va a probar si un elemento satisface una condición. + Tipo de los elementos de . + + o es null. + Varios elementos satisfacen la condición de . + + + Omite un número especificado de elementos en una secuencia y, a continuación, devuelve los elementos restantes. + + que contiene los elementos que hay después del índice especificado en la secuencia de entrada. + + del que se van a devolver los elementos. + Número de elementos que se van a omitir antes de devolver los elementos restantes. + Tipo de los elementos de . + + es null. + + + Omite los elementos de una secuencia en tanto que el valor de una condición especificada sea true y, a continuación, devuelve los elementos restantes. + + que contiene los elementos de comenzando por el primer elemento de la serie lineal que no pasa la prueba especificada . + + del que se van a devolver los elementos. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Omite los elementos de una secuencia en tanto que el valor de una condición especificada sea true y, a continuación, devuelve los elementos restantes.El índice del elemento se usa en la lógica de la función de predicado. + + que contiene los elementos de comenzando por el primer elemento de la serie lineal que no pasa la prueba especificada . + + del que se van a devolver los elementos. + Función que va a probar cada elemento para determinar si satisface una condición; el segundo parámetro de esta función representa el índice del elemento de origen. + Tipo de los elementos de . + + o es null. + + + Calcula la suma de una secuencia de valores . + La suma de los valores de la secuencia. + Secuencia de valores cuya suma se va a calcular. + + es null. + La suma es mayor que . + + + Calcula la suma de una secuencia de valores . + La suma de los valores de la secuencia. + Secuencia de valores cuya suma se va a calcular. + + es null. + + + Calcula la suma de una secuencia de valores . + La suma de los valores de la secuencia. + Secuencia de valores cuya suma se va a calcular. + + es null. + La suma es mayor que . + + + Calcula la suma de una secuencia de valores . + La suma de los valores de la secuencia. + Secuencia de valores cuya suma se va a calcular. + + es null. + La suma es mayor que . + + + Calcula la suma de una secuencia de valores que aceptan valores NULL. + La suma de los valores de la secuencia. + Secuencia de valores que aceptan valores NULL cuya suma se va a calcular. + + es null. + La suma es mayor que . + + + Calcula la suma de una secuencia de valores que aceptan valores NULL. + La suma de los valores de la secuencia. + Secuencia de valores que aceptan valores NULL cuya suma se va a calcular. + + es null. + + + Calcula la suma de una secuencia de valores que aceptan valores NULL. + La suma de los valores de la secuencia. + Una secuencia de valores que aceptan valores NULL cuya suma se va a calcular. + + es null. + La suma es mayor que . + + + Calcula la suma de una secuencia de valores que aceptan valores NULL. + La suma de los valores de la secuencia. + Secuencia de valores que aceptan valores NULL cuya suma se va a calcular. + + es null. + La suma es mayor que . + + + Calcula la suma de una secuencia de valores que aceptan valores NULL. + La suma de los valores de la secuencia. + Secuencia de valores que aceptan valores NULL cuya suma se va a calcular. + + es null. + + + Calcula la suma de una secuencia de valores . + La suma de los valores de la secuencia. + Secuencia de valores cuya suma se va a calcular. + + es null. + + + Calcula la suma de la secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + La suma es mayor que . + + + Calcula la suma de la secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula la suma de la secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + La suma es mayor que . + + + Calcula la suma de la secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + La suma es mayor que . + + + Calcula la suma de la secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + La suma es mayor que . + + + Calcula la suma de la secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula la suma de la secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + La suma es mayor que . + + + Calcula la suma de la secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + La suma es mayor que . + + + Calcula la suma de la secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula la suma de la secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Devuelve un número especificado de elementos contiguos desde el principio de una secuencia. + + que contiene el número especificado de elementos desde el comienzo de . + Secuencia cuyos elementos se van a devolver. + Número de elementos que se van a devolver. + Tipo de los elementos de . + + es null. + + + Devuelve los elementos de una secuencia en tanto que el valor de una condición especificada sea true. + + que contiene los elementos de la secuencia de entrada que se encuentran antes del elemento en el que la prueba especificada no se realiza correctamente. + Secuencia cuyos elementos se van a devolver. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Devuelve los elementos de una secuencia en tanto que el valor de una condición especificada sea true.El índice del elemento se usa en la lógica de la función de predicado. + + que contiene los elementos de la secuencia de entrada que se encuentran antes del elemento en el que la prueba especificada no se realiza correctamente. + Secuencia cuyos elementos se van a devolver. + Función que va a probar cada elemento para determinar si satisface una condición; el segundo parámetro de la función representa el índice del elemento de la secuencia de origen. + Tipo de los elementos de . + + o es null. + + + Realiza una clasificación posterior de los elementos de una secuencia en orden ascendentes con arreglo a una clave. + Una interfaz cuyos elementos se ordenan con arreglo a una clave. + + que contiene los elementos que se van a ordenar. + Función para extraer una clave a partir de cada elemento. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + + o es null. + + + Realiza una clasificación posterior de los elementos de una secuencia en orden ascendente utilizando un comparador especificado. + Una interfaz cuyos elementos se ordenan con arreglo a una clave. + + que contiene los elementos que se van a ordenar. + Función para extraer una clave a partir de cada elemento. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + + o o es null. + + + Realiza una clasificación posterior de los elementos de una secuencia en orden descendente con arreglo a una clave. + Una interfaz cuyos elementos se ordenan de manera descendente con arreglo a una clave. + + que contiene los elementos que se van a ordenar. + Función para extraer una clave a partir de cada elemento. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + + o es null. + + + Realiza una clasificación posterior de los elementos de una secuencia en orden descendente utilizando un comparador especificado. + Colección cuyos elementos están ordenados de manera descendente de acuerdo con una clave. + + que contiene los elementos que se van a ordenar. + Función para extraer una clave a partir de cada elemento. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave que la función devuelve. + + o o es null. + + + Proporciona la unión de conjuntos de dos secuencias utilizando el comparador de igualdad predeterminado. + + que contiene los elementos de las dos secuencias de entrada, excepto los duplicados. + Secuencia cuyos elementos forman el primer conjunto de la operación de unión. + Secuencia cuyos elementos forman el segundo conjunto de la operación de unión. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Proporciona la unión de conjuntos de dos secuencias a través de un objeto especificado. + + que contiene los elementos de las dos secuencias de entrada, excepto los duplicados. + Secuencia cuyos elementos forman el primer conjunto de la operación de unión. + Secuencia cuyos elementos forman el segundo conjunto de la operación de unión. + + para comparar valores. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Filtra una secuencia de valores en función de un predicado. + + que contiene los elementos de la secuencia de entrada que satisfacen la condición especificada en . + + que se va a filtrar. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Filtra una secuencia de valores en función de un predicado.El índice de cada elemento se usa en la lógica de la función de predicado. + + que contiene los elementos de la secuencia de entrada que satisfacen la condición especificada en . + + que se va a filtrar. + Función que va a probar cada elemento para determinar si satisface una condición; el segundo parámetro de la función representa el índice del elemento de la secuencia de origen. + Tipo de los elementos de . + + o es null. + + + Combina dos secuencias utilizando la función de predicado especificada. + + que contiene elementos combinados de las dos secuencias de entrada. + Primera secuencia que se va a combinar. + Segunda secuencia que se va a combinar. + Función que especifica cómo combinar los elementos de las dos secuencias. + Tipo de los elementos de la primera secuencia de entrada. + Tipo de los elementos de la segunda secuencia de entrada. + Tipo de los elementos de la secuencia de resultados. + El valor de o de es null. + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netcore50/fr/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/fr/System.Linq.Queryable.xml new file mode 100644 index 0000000..6dc0bf7 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/fr/System.Linq.Queryable.xml @@ -0,0 +1,1384 @@ + + + + System.Linq.Queryable + + + + Représente une arborescence de l'expression et fournit les fonctionnalités permettant d'exécuter l'arborescence de l'expression après l'avoir réécrite. + + + Initialise une nouvelle instance de la classe . + + + Représente une arborescence de l'expression et fournit les fonctionnalités permettant d'exécuter l'arborescence de l'expression après l'avoir réécrite. + Type de données de la valeur qui résulte de l'exécution de l'arborescence de l'expression. + + + Initialise une nouvelle instance de la classe . + Arborescence de l'expression à associer à la nouvelle instance. + + + Représente une sous la forme d'une source de données . + + + Initialise une nouvelle instance de la classe . + + + Représente une collection sous la forme d'une source de données . + Type des données contenues dans la collection. + + + Initialise une nouvelle instance de la classe et l'associe à une collection . + Collection à associer à la nouvelle instance. + + + Initialise une nouvelle instance de la classe et associe l'instance à une arborescence de l'expression. + Arborescence de l'expression à associer à la nouvelle instance. + + + Retourne un énumérateur qui peut itérer au sein de la collection associée, ou, si sa valeur est null, la collection qui résulte de la réécriture de l'arborescence de l'expression associée en tant que requête sur une source de données et de son exécution. + Énumérateur pouvant itérer au sein de la source de données associée. + + + Retourne un énumérateur qui peut itérer au sein de la collection associée, ou, si sa valeur est null, la collection qui résulte de la réécriture de l'arborescence de l'expression associée en tant que requête sur une source de données et de son exécution. + Énumérateur pouvant itérer au sein de la source de données associée. + + + Obtient le type de données dans la collection que représente cette instance. + Type de données dans la collection que représente cette instance. + + + Obtient l'arborescence de l'expression associée à cette instance ou qui la représente. + Arborescence de l'expression associée à cette instance ou qui la représente. + + + Obtient le fournisseur de requêtes associé à cette instance. + Fournisseur de requêtes associé à cette instance. + + + Construit un nouvel objet et l'associe à une arborescence de l'expression spécifiée qui représente une collection de données . + Objet EnumerableQuery associé à . + Arborescence de l'expression à exécuter. + Type de données dans la collection que représente . + + + Construit un nouvel objet et l'associe à une arborescence de l'expression spécifiée qui représente une collection de données . + Objet associé à . + Arborescence de l'expression qui représente une collection de données . + + + Exécute une expression après l'avoir réécrit pour appeler des méthodes à la place des méthodes sur des sources de données énumérables qui ne peuvent pas être interrogées par les méthodes . + Valeur qui résulte de l'exécution de . + Arborescence de l'expression à exécuter. + Type de données dans la collection que représente . + + + Exécute une expression après l'avoir réécrit pour appeler des méthodes à la place des méthodes sur des sources de données énumérables qui ne peuvent pas être interrogées par les méthodes . + Valeur qui résulte de l'exécution de . + Arborescence de l'expression à exécuter. + + + Retourne une représentation textuelle de la collection énumérable ou, si la valeur est null, de l'arborescence de l'expression associée à cette instance. + Représentation textuelle de la collection énumérable ou, si la valeur est null, de l'arborescence de l'expression associée à cette instance. + + + Fournit un jeu de méthodes statiques staticShared en Visual Basic) pour interroger des structures de données qui implémentent . + + + Applique une fonction d'accumulation sur une séquence. + Valeur d'accumulation finale. + Séquence à regrouper. + Fonction d'accumulation à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + ne contient aucun élément. + + + Applique une fonction d'accumulation sur une séquence.La valeur initiale spécifiée est utilisée comme valeur d'accumulation initiale. + Valeur d'accumulation finale. + Séquence à regrouper. + Valeur d'accumulation initiale. + Fonction d'accumulation à appeler sur chaque élément. + Type des éléments de . + Type de la valeur d'accumulation. + + ou est null. + + + Applique une fonction d'accumulation sur une séquence.La valeur initiale spécifiée est utilisée comme valeur d'accumulation initiale et la fonction spécifiée permet de sélectionner la valeur de résultat. + Valeur d'accumulation finale transformée. + Séquence à regrouper. + Valeur d'accumulation initiale. + Fonction d'accumulation à appeler sur chaque élément. + Fonction permettant de transformer la valeur d'accumulation finale en valeur de résultat. + Type des éléments de . + Type de la valeur d'accumulation. + Type de la valeur résultante. + + ou ou est null. + + + Détermine si tous les éléments d'une séquence satisfont à une condition. + true si tous les éléments de la séquence source réussissent le test dans le prédicat spécifié ou si la séquence est vide ; sinon, false. + Séquence dont les éléments doivent être testés par rapport à une condition. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Détermine si une séquence contient des éléments. + true si la séquence source contient des éléments ; sinon, false. + Séquence à vérifier pour y détecter l'absence de données. + Type des éléments de . + + a la valeur null. + + + Détermine si des éléments d'une séquence satisfont à une condition. + true si des éléments de la séquence source réussissent le test dans le prédicat spécifié ; sinon, false. + Séquence dont les éléments doivent être testés par rapport à une condition. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Convertit un générique en générique. + + qui représente la séquence d'entrée. + Séquence à convertir. + Type des éléments de . + + a la valeur null. + + + Convertit un en . + + qui représente la séquence d'entrée. + Séquence à convertir. + + n'implémente pas pour certains . + + a la valeur null. + + + Calcule la moyenne d'une séquence de valeurs . + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + + a la valeur null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs . + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + + a la valeur null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs . + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + + a la valeur null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs . + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + + a la valeur null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs nullables. + Moyenne de la séquence de valeurs ou null si la séquence source est vide ou ne contient que des valeurs null. + Séquence de valeurs nullables dont la moyenne doit être calculée. + + a la valeur null. + + + Calcule la moyenne d'une séquence de valeurs nullables. + Moyenne de la séquence de valeurs ou null si la séquence source est vide ou ne contient que des valeurs null. + Séquence de valeurs nullables dont la moyenne doit être calculée. + + a la valeur null. + + + Calcule la moyenne d'une séquence de valeurs nullables. + Moyenne de la séquence de valeurs ou null si la séquence source est vide ou ne contient que des valeurs null. + Séquence de valeurs nullables dont la moyenne doit être calculée. + + a la valeur null. + + + Calcule la moyenne d'une séquence de valeurs nullables. + Moyenne de la séquence de valeurs ou null si la séquence source est vide ou ne contient que des valeurs null. + Séquence de valeurs nullables dont la moyenne doit être calculée. + + a la valeur null. + + + Calcule la moyenne d'une séquence de valeurs nullables. + Moyenne de la séquence de valeurs ou null si la séquence source est vide ou ne contient que des valeurs null. + Séquence de valeurs nullables dont la moyenne doit être calculée. + + a la valeur null. + + + Calcule la moyenne d'une séquence de valeurs . + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + + a la valeur null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs. + Séquence de valeurs utilisées pour calculer une moyenne. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs ou null si la séquence est vide ou ne contient que des valeurs null. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la moyenne d'une séquence de valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs ou null si la séquence est vide ou ne contient que des valeurs null. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la moyenne d'une séquence de valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs ou null si la séquence est vide ou ne contient que des valeurs null. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la moyenne d'une séquence de valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs ou null si la séquence est vide ou ne contient que des valeurs null. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la moyenne d'une séquence de valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs ou null si la séquence est vide ou ne contient que des valeurs null. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la moyenne d'une séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + ne contient aucun élément. + + + Convertit les éléments d'un vers le type spécifié. + + qui contient chaque élément de la séquence source converti dans le type spécifié. + + qui contient les éléments à convertir. + Type vers lequel convertir les éléments de . + + a la valeur null. + Impossible de caster un élément de la séquence en type . + + + Concatène deux séquences. + + qui contient les éléments concaténés des deux séquences d'entrée. + Première séquence à concaténer. + Séquence à concaténer à la première séquence. + Type des éléments des séquences d'entrée. + + ou est null. + + + Détermine si une séquence contient un élément spécifié à l'aide du comparateur d'égalité par défaut. + true si la séquence d'entrée contient un élément avec la valeur spécifiée ; sinon, false. + + dans lequel trouver . + L'objet à localiser dans la séquence. + Type des éléments de . + + a la valeur null. + + + Détermine si une séquence contient un élément spécifié à l'aide du indiqué. + true si la séquence d'entrée contient un élément avec la valeur spécifiée ; sinon, false. + + dans lequel trouver . + L'objet à localiser dans la séquence. + + pour comparer les valeurs. + Type des éléments de . + + a la valeur null. + + + Retourne le nombre total d'éléments dans une séquence. + Nombre total d'éléments dans la séquence d'entrée. + + qui contient les éléments à compter. + Type des éléments de . + + a la valeur null. + Le nombre d'éléments dans est supérieur à . + + + Retourne le nombre d'éléments dans la séquence spécifiée qui satisfait à une condition. + Nombre d'éléments de la séquence qui satisfont à la condition dans la fonction de prédicat. + + qui contient les éléments à compter. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + Le nombre d'éléments dans est supérieur à . + + + Retourne les éléments de la séquence spécifiée ou la valeur par défaut du paramètre de type dans une collection de singletons si la séquence est vide. + + qui contient default() si est vide ; sinon, . + + pour lequel retourner une valeur par défaut si vide. + Type des éléments de . + + a la valeur null. + + + Retourne les éléments de la séquence spécifiée ou la valeur indiquée dans une collection de singletons si la séquence est vide. + + qui contient si est vide ; sinon, . + + pour lequel retourner la valeur spécifiée si vide. + Valeur à retourner si la séquence est vide. + Type des éléments de . + + a la valeur null. + + + Retourne des éléments distincts d'une séquence et utilise le comparateur d'égalité par défaut pour comparer les valeurs. + + qui contient des éléments distincts de . + + dans lequel supprimer les doublons. + Type des éléments de . + + a la valeur null. + + + Retourne des éléments distincts d'une séquence et utilise le spécifié pour comparer les valeurs. + + qui contient des éléments distincts de . + + dans lequel supprimer les doublons. + + pour comparer les valeurs. + Type des éléments de . + + ou est null. + + + Retourne l'élément à une position d'index spécifiée dans une séquence. + L'élément à la position spécifiée dans . + + à partir duquel retourner un élément. + Index de base zéro de l'élément à récupérer. + Type des éléments de . + + a la valeur null. + + est inférieur à zéro. + + + Retourne l'élément situé à un index spécifié dans une séquence ou une valeur par défaut si l'index est hors limites. + default() si est hors des limites de  ; sinon, l'élément à la position spécifiée dans . + + à partir duquel retourner un élément. + Index de base zéro de l'élément à récupérer. + Type des éléments de . + + a la valeur null. + + + Produit la différence entre deux séquences à l'aide du comparateur d'égalité par défaut pour comparer les valeurs. + + qui contient la différence des deux séquences. + Un dont les éléments ne se trouvent pas également dans sera retourné. + Un dont les éléments apparaissent également dans la première séquence ne figurera pas dans la séquence retournée. + Type des éléments des séquences d'entrée. + + ou est null. + + + Produit la différence entre deux séquences à l'aide du spécifié pour comparer les valeurs. + + qui contient la différence des deux séquences. + Un dont les éléments ne se trouvent pas également dans sera retourné. + Un dont les éléments apparaissent également dans la première séquence ne figurera pas dans la séquence retournée. + + pour comparer les valeurs. + Type des éléments des séquences d'entrée. + + ou est null. + + + Retourne le premier élément d'une séquence. + Premier élément de . + + duquel retourner le premier élément. + Type des éléments de . + + a la valeur null. + La séquence source est vide. + + + Retourne le premier élément d'une séquence qui satisfait à la condition spécifiée. + Premier élément de qui réussit le test dans . + + à partir duquel retourner un élément. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + Aucun élément ne satisfait à la condition dans .ouLa séquence source est vide. + + + Retourne le premier élément d'une séquence ou une valeur par défaut si la séquence ne contient aucun élément. + default () si est vide ; sinon, le premier élément de . + + duquel retourner le premier élément. + Type des éléments de . + + a la valeur null. + + + Retourne le premier élément d'une séquence qui satisfait à une condition spécifiée ou une valeur par défaut si aucun élément ne correspond. + default () si est vide ou si aucun élément ne réussit le test spécifié par  ; sinon, le premier élément de qui réussit le test spécifié par . + + à partir duquel retourner un élément. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée. + IQueryable<IGrouping<TKey, TSource>> en C# ou IQueryable(Of IGrouping(Of TKey, TSource)) dans Visual Basic où chaque objet contient une séquence d'objets et une clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + + ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et compare les clés à l'aide du comparateur indiqué. + IQueryable<IGrouping<TKey, TSource>> en C# ou IQueryable(Of IGrouping(Of TKey, TSource)) dans Visual Basic où chaque contient une séquence d'objets et une clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + + ou ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et projette les éléments de chaque groupe à l'aide de la fonction indiquée. + IQueryable<IGrouping<TKey, TElement>> en C# ou IQueryable(Of IGrouping(Of TKey, TElement)) dans Visual Basic où chaque contient une séquence d'objets de type et une clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Fonction permettant de mapper chaque élément source à un élément de . + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + Type des éléments de chaque . + + ou ou est null. + + + Groupe les éléments d'une séquence et projette les éléments pour chaque groupe en utilisant une fonction spécifiée.Les valeurs de clés sont comparées à l'aide d'un comparateur spécifié. + IQueryable<IGrouping<TKey, TElement>> en C# ou IQueryable(Of IGrouping(Of TKey, TElement)) dans Visual Basic où chaque contient une séquence d'objets de type et une clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Fonction permettant de mapper chaque élément source à un élément de . + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + Type des éléments de chaque . + + ou ou ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante.Les éléments de chaque groupe sont projetés à l'aide d'une fonction spécifique. + T:System.Linq.IQueryable`1 qui dispose d'un argument de type et où chaque élément représente une projection sur un groupe et sa clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Fonction permettant de mapper chaque élément source à un élément de . + Fonction permettant de créer une valeur de résultat à partir de chaque groupe. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + Type des éléments de chaque . + Type de la valeur de résultat retournée par . + + ou ou ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante.Les clés sont comparées à l'aide du comparateur spécifié et les éléments de chaque groupe sont projetés à l'aide d'une fonction spécifique. + T:System.Linq.IQueryable`1 qui dispose d'un argument de type et où chaque élément représente une projection sur un groupe et sa clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Fonction permettant de mapper chaque élément source à un élément de . + Fonction permettant de créer une valeur de résultat à partir de chaque groupe. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + Type des éléments de chaque . + Type de la valeur de résultat retournée par . + + ou ou ou ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante. + T:System.Linq.IQueryable`1 qui dispose d'un argument de type et où chaque élément représente une projection sur un groupe et sa clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Fonction permettant de créer une valeur de résultat à partir de chaque groupe. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + Type de la valeur de résultat retournée par . + + ou ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante.Les clés sont comparées à l'aide d'un comparateur spécifié. + T:System.Linq.IQueryable`1 qui dispose d'un argument de type et où chaque élément représente une projection sur un groupe et sa clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Fonction permettant de créer une valeur de résultat à partir de chaque groupe. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + Type de la valeur de résultat retournée par . + + ou ou ou est null. + + + Met en corrélation les éléments de deux séquences en fonction de l'égalité des clés et regroupe les résultats.Le comparateur d'égalité par défaut est utilisé pour comparer les clés. + + qui contient des éléments de type obtenus en exécutant une jointure groupée sur deux séquences. + Première séquence à joindre. + Séquence à joindre à la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la deuxième séquence. + Fonction permettant de créer un élément de résultat à partir d'un élément de la première séquence, ainsi qu'une collection d'éléments correspondants à partir de la deuxième séquence. + Type des éléments de la première séquence. + Type des éléments de la deuxième séquence. + Type des clés retournées par les fonctions de sélecteur de clé. + Type des éléments de résultat. + + ou ou ou ou est null. + + + Met en corrélation les éléments de deux séquences en fonction de l'égalité des clés et regroupe les résultats.Un spécifié est utilisé pour comparer les clés. + + qui contient des éléments de type obtenus en exécutant une jointure groupée sur deux séquences. + Première séquence à joindre. + Séquence à joindre à la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la deuxième séquence. + Fonction permettant de créer un élément de résultat à partir d'un élément de la première séquence, ainsi qu'une collection d'éléments correspondants à partir de la deuxième séquence. + Comparateur pour hacher et comparer des clés. + Type des éléments de la première séquence. + Type des éléments de la deuxième séquence. + Type des clés retournées par les fonctions de sélecteur de clé. + Type des éléments de résultat. + + ou ou ou ou est null. + + + Produit l'intersection de deux séquences à l'aide du comparateur d'égalité par défaut pour comparer les valeurs. + Séquence qui contient l'intersection définie des deux séquences. + Séquence dont les éléments distincts qui apparaissent également dans sont retournés. + Séquence dont les éléments distincts qui apparaissent également dans la première séquence sont retournés. + Type des éléments des séquences d'entrée. + + ou est null. + + + Produit l'intersection entre deux séquences à l'aide du spécifié pour comparer les valeurs. + + qui contient l'intersection définie des deux séquences. + Un dont les éléments distincts qui apparaissent également dans sont retournés. + Un dont les éléments distincts qui apparaissent également dans la première séquence sont retournés. + + pour comparer les valeurs. + Type des éléments des séquences d'entrée. + + ou est null. + + + Met en corrélation les éléments de deux séquences en fonction des clés qui correspondent.Le comparateur d'égalité par défaut est utilisé pour comparer les clés. + + qui contient des éléments de type obtenus à la suite d'une jointure interne de deux séquences. + Première séquence à joindre. + Séquence à joindre à la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la deuxième séquence. + Fonction permettant de créer un élément de résultat à partir de deux éléments correspondants. + Type des éléments de la première séquence. + Type des éléments de la deuxième séquence. + Type des clés retournées par les fonctions de sélecteur de clé. + Type des éléments de résultat. + + ou ou ou ou est null. + + + Met en corrélation les éléments de deux séquences en fonction des clés qui correspondent.Un spécifié est utilisé pour comparer les clés. + + qui contient des éléments de type obtenus à la suite d'une jointure interne de deux séquences. + Première séquence à joindre. + Séquence à joindre à la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la deuxième séquence. + Fonction permettant de créer un élément de résultat à partir de deux éléments correspondants. + + pour hacher et comparer les clés. + Type des éléments de la première séquence. + Type des éléments de la deuxième séquence. + Type des clés retournées par les fonctions de sélecteur de clé. + Type des éléments de résultat. + + ou ou ou ou est null. + + + Retourne le dernier élément d'une séquence. + Valeur située à la dernière position de . + + duquel retourner le dernier élément. + Type des éléments de . + + a la valeur null. + La séquence source est vide. + + + Retourne le dernier élément d'une séquence à satisfaire à la condition spécifiée. + Le dernier élément de qui réussit le test spécifié par . + + à partir duquel retourner un élément. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + Aucun élément ne satisfait à la condition dans .ouLa séquence source est vide. + + + Retourne le dernier élément d'une séquence ou une valeur par défaut si la séquence ne contient aucun élément. + default () si est vide ; sinon, le dernier élément de . + + duquel retourner le dernier élément. + Type des éléments de . + + a la valeur null. + + + Retourne le dernier élément d'une séquence à satisfaire à une condition ou une valeur par défaut si aucun élément correspondant n'est trouvé. + default () si est vide ou si aucun élément ne réussit le test de la fonction de prédicat ; sinon, le dernier élément de qui réussit le test de cette fonction. + + à partir duquel retourner un élément. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Retourne un qui représente le nombre total d'éléments dans une séquence. + Nombre d'éléments de . + + qui contient les éléments à compter. + Type des éléments de . + + a la valeur null. + Le nombre d'éléments est supérieur à . + + + Retourne un qui représente le nombre d'éléments dans une séquence qui satisfont à une condition. + Nombre d'éléments de qui satisfont à la condition définie dans la fonction de prédicat. + + qui contient les éléments à compter. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + Le nombre d'éléments correspondants est supérieur à . + + + Retourne la valeur maximale dans un générique. + Valeur maximale dans la séquence. + Séquence de valeurs dans laquelle rechercher la valeur maximale. + Type des éléments de . + + a la valeur null. + + + Appelle une fonction de projection sur chaque élément d'un générique et retourne la valeur résultante maximale. + Valeur maximale dans la séquence. + Séquence de valeurs dans laquelle rechercher la valeur maximale. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + Type de la valeur retournée par la fonction représentée par . + + ou est null. + + + Retourne la valeur minimale d'un générique. + Valeur minimale dans la séquence. + Séquence de valeurs dans laquelle rechercher la valeur minimale. + Type des éléments de . + + a la valeur null. + + + Appelle une fonction de projection sur chaque élément d'un générique et retourne la valeur résultante minimale. + Valeur minimale dans la séquence. + Séquence de valeurs dans laquelle rechercher la valeur minimale. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + Type de la valeur retournée par la fonction représentée par . + + ou est null. + + + Filtre les éléments d'un en fonction du type spécifié. + Collection qui contient les éléments de qui ont le type . + + dont les éléments doivent être filtrés. + Type en fonction duquel filtrer les éléments de la séquence. + + a la valeur null. + + + Trie les éléments d'une séquence dans l'ordre croissant selon une clé. + + dont les éléments sont triés selon une clé. + Séquence de valeurs à classer. + Fonction permettant d'extraire une clé d'un élément. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou est null. + + + Trie les éléments d'une séquence dans l'ordre croissant à l'aide d'un comparateur spécifié. + + dont les éléments sont triés selon une clé. + Séquence de valeurs à classer. + Fonction permettant d'extraire une clé d'un élément. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou ou est null. + + + Trie les éléments d'une séquence dans l'ordre décroissant selon une clé. + + dont les éléments sont triés dans l'ordre décroissant selon une clé. + Séquence de valeurs à classer. + Fonction permettant d'extraire une clé d'un élément. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou est null. + + + Trie les éléments d'une séquence dans l'ordre décroissant à l'aide d'un comparateur spécifié. + + dont les éléments sont triés dans l'ordre décroissant selon une clé. + Séquence de valeurs à classer. + Fonction permettant d'extraire une clé d'un élément. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou ou est null. + + + Inverse l'ordre des éléments dans une séquence. + + dont les éléments correspondent à ceux de la séquence d'entrée dans l'ordre inverse. + Séquence de valeurs à inverser. + Type des éléments de . + + a la valeur null. + + + Projette chaque élément d'une séquence dans un nouveau formulaire. + + dont les éléments sont le résultat de l'appel d'une fonction de projection sur chaque élément de . + Séquence de valeurs à projeter. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + Type de la valeur retournée par la fonction représentée par . + + ou est null. + + + Projette chaque élément d'une séquence dans un nouveau formulaire en incorporant l'index de l'élément. + + dont les éléments sont le résultat de l'appel d'une fonction de projection sur chaque élément de . + Séquence de valeurs à projeter. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + Type de la valeur retournée par la fonction représentée par . + + ou est null. + + + Projette chaque élément d'une séquence sur un et appelle une fonction du sélecteur de résultat sur chaque élément obtenu.Les valeurs résultantes de chaque séquence intermédiaire sont combinées en une séquence unique, unidimensionnelle et retournées. + + dont les éléments sont le résultat de l'appel de la fonction de projection un-à-plusieurs sur chaque élément de puis du mappage de chacun de ces éléments de séquence et de leur élément correspondant en un élément de résultat. + Séquence de valeurs à projeter. + Fonction de projection à appliquer à chaque élément de la séquence d'entrée. + Fonction de projection à appliquer à chaque élément de chaque séquence intermédiaire. + Type des éléments de . + Type des éléments intermédiaires rassemblé par la fonction représentée par . + Type des éléments de la séquence résultante. + + ou ou est null. + + + Projette chaque élément d'une séquence sur un et combine les séquences résultantes en une séquence. + + dont les éléments sont le résultat de l'appel d'une fonction de projection d'un-à-plusieurs sur chaque élément de la séquence d'entrée. + Séquence de valeurs à projeter. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + Type des éléments de la séquence retournée par la fonction représentée par . + + ou est null. + + + Projette chaque élément d'une séquence en un qui incorpore l'index de l'élément source qui l'a produit.Une fonction de sélecteur du résultat est appelée sur chaque élément de chaque séquence intermédiaire, et les valeurs résultantes sont combinées en une séquence unique, unidimensionnelle et retournées. + + dont les éléments sont le résultat de l'appel de la fonction de projection un-à-plusieurs sur chaque élément de puis du mappage de chacun de ces éléments de séquence et de leur élément correspondant en un élément de résultat. + Séquence de valeurs à projeter. + Fonction de projection à appliquer à chaque élément de la séquence d'entrée ; le deuxième paramètre de cette fonction représente l'index de l'élément source. + Fonction de projection à appliquer à chaque élément de chaque séquence intermédiaire. + Type des éléments de . + Type des éléments intermédiaires rassemblé par la fonction représentée par . + Type des éléments de la séquence résultante. + + ou ou est null. + + + Projette chaque élément d'une séquence sur un et combine les séquences résultantes en une séquence.L'index de chaque élément source est utilisé dans le formulaire projeté de l'élément. + + dont les éléments sont le résultat de l'appel d'une fonction de projection d'un-à-plusieurs sur chaque élément de la séquence d'entrée. + Séquence de valeurs à projeter. + Fonction de projection à appliquer à chaque élément ; le deuxième paramètre de cette fonction représente l'index de l'élément source. + Type des éléments de . + Type des éléments de la séquence retournée par la fonction représentée par . + + ou est null. + + + Détermine si deux séquences sont égales à l'aide du comparateur d'égalité par défaut pour comparer des éléments. + true si les deux séquences sources sont de longueur égale et que leurs éléments correspondants sont égaux ; sinon, false. + + dont les éléments sont à comparer à ceux de . + + dont les éléments sont à comparer à ceux de la première séquence. + Type des éléments des séquences d'entrée. + + ou est null. + + + Détermine si deux séquences sont égales à l'aide d'un spécifié pour comparer des éléments. + true si les deux séquences sources sont de longueur égale et que leurs éléments correspondants sont égaux ; sinon, false. + + dont les éléments sont à comparer à ceux de . + + dont les éléments sont à comparer à ceux de la première séquence. + + à utiliser pour comparer les éléments. + Type des éléments des séquences d'entrée. + + ou est null. + + + Retourne l'élément unique d'une séquence ou lève une exception si cette séquence ne contient pas un seul élément. + Seul élément de la séquence d'entrée. + + duquel retourner le seul élément. + Type des éléments de . + + a la valeur null. + + a plusieurs éléments. + + + Retourne le seul élément d'une séquence qui satisfait à une condition spécifique ou lève une exception si cette séquence contient plusieurs éléments respectant cette condition. + L'élément unique de la séquence d'entrée qui satisfait à la condition dans . + + duquel retourner un seul élément. + Fonction permettant de tester un élément pour une condition. + Type des éléments de . + + ou est null. + Aucun élément ne satisfait à la condition dans .ouPlusieurs éléments satisfont à la condition dans .ouLa séquence source est vide. + + + Retourne l'élément unique d'une séquence ou une valeur par défaut. Cette méthode lève une exception si cette séquence contient plusieurs éléments. + L'élément unique de la séquence d'entrée ou default () si la séquence ne contient aucun élément. + + duquel retourner le seul élément. + Type des éléments de . + + a la valeur null. + + a plusieurs éléments. + + + Retourne l'élément unique d'une séquence ou une valeur par défaut si cette séquence ne contient pas d'élément respectant cette condition. Cette méthode lève une exception si cette séquence contient plusieurs éléments satisfaisant à cette condition. + Seul élément de la séquence d'entrée qui satisfait à la condition dans ou default() si cet élément n'est pas trouvé. + + duquel retourner un seul élément. + Fonction permettant de tester un élément pour une condition. + Type des éléments de . + + ou est null. + Plusieurs éléments satisfont à la condition dans . + + + Ignore un nombre spécifié d'éléments dans une séquence puis retourne les éléments restants. + + qui contient les éléments se trouvant après l'index spécifié dans la séquence d'entrée. + + à partir duquel retourner les éléments. + Nombre d'éléments à ignorer avant de retourner les éléments restants. + Type des éléments de . + + a la valeur null. + + + Ignore des éléments dans une séquence tant que la condition spécifiée a la valeur true, puis retourne les éléments restants. + + qui contient des éléments de , en commençant par le premier élément de la série linéaire qui ne réussit pas le test spécifié par . + + à partir duquel retourner les éléments. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Ignore des éléments dans une séquence tant que la condition spécifiée a la valeur true, puis retourne les éléments restants.L'index de l'élément est utilisé dans la logique de la fonction de prédicat. + + qui contient des éléments de , en commençant par le premier élément de la série linéaire qui ne réussit pas le test spécifié par . + + à partir duquel retourner les éléments. + Fonction permettant de tester chaque élément source par rapport à une condition ; le deuxième paramètre de cette fonction représente l'index de l'élément source. + Type des éléments de . + + ou est null. + + + Calcule la somme d'une séquence de valeurs . + Somme des valeurs de la séquence. + Séquence de valeurs dont la somme doit être calculée. + + a la valeur null. + La somme est supérieure à . + + + Calcule la somme d'une séquence de valeurs . + Somme des valeurs de la séquence. + Séquence de valeurs dont la somme doit être calculée. + + a la valeur null. + + + Calcule la somme d'une séquence de valeurs . + Somme des valeurs de la séquence. + Séquence de valeurs dont la somme doit être calculée. + + a la valeur null. + La somme est supérieure à . + + + Calcule la somme d'une séquence de valeurs . + Somme des valeurs de la séquence. + Séquence de valeurs dont la somme doit être calculée. + + a la valeur null. + La somme est supérieure à . + + + Calcule la somme d'une séquence de valeurs nullables. + Somme des valeurs de la séquence. + Séquence de valeurs nullables dont la somme doit être calculée. + + a la valeur null. + La somme est supérieure à . + + + Calcule la somme d'une séquence de valeurs nullables. + Somme des valeurs de la séquence. + Séquence de valeurs nullables dont la somme doit être calculée. + + a la valeur null. + + + Calcule la somme d'une séquence de valeurs nullables. + Somme des valeurs de la séquence. + Séquence de valeurs nullables dont la somme doit être calculée. + + a la valeur null. + La somme est supérieure à . + + + Calcule la somme d'une séquence de valeurs nullables. + Somme des valeurs de la séquence. + Séquence de valeurs nullables dont la somme doit être calculée. + + a la valeur null. + La somme est supérieure à . + + + Calcule la somme d'une séquence de valeurs nullables. + Somme des valeurs de la séquence. + Séquence de valeurs nullables dont la somme doit être calculée. + + a la valeur null. + + + Calcule la somme d'une séquence de valeurs . + Somme des valeurs de la séquence. + Séquence de valeurs dont la somme doit être calculée. + + a la valeur null. + + + Calcule la somme de la séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + La somme est supérieure à . + + + Calcule la somme de la séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la somme de la séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + La somme est supérieure à . + + + Calcule la somme de la séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + La somme est supérieure à . + + + Calcule la somme de la séquence des valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + La somme est supérieure à . + + + Calcule la somme de la séquence des valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la somme de la séquence des valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + La somme est supérieure à . + + + Calcule la somme de la séquence des valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + La somme est supérieure à . + + + Calcule la somme de la séquence des valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la somme de la séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Retourne un nombre spécifié d'éléments contigus à partir du début d'une séquence. + + qui contient le nombre spécifié d'éléments à partir du début de . + Séquence à partir de laquelle retourner les éléments. + Nombre d'éléments à retourner. + Type des éléments de . + + a la valeur null. + + + Retourne des éléments d'une séquence tant que la condition spécifiée a la valeur true. + + qui contient les éléments de la séquence d'entrée placés avant l'élément à partir duquel le test spécifié par ne réussit plus. + Séquence à partir de laquelle retourner les éléments. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Retourne des éléments d'une séquence tant que la condition spécifiée a la valeur true.L'index de l'élément est utilisé dans la logique de la fonction de prédicat. + + qui contient les éléments de la séquence d'entrée placés avant l'élément à partir duquel le test spécifié par ne réussit plus. + Séquence à partir de laquelle retourner les éléments. + Fonction permettant de tester chaque élément par rapport à une condition ; le deuxième paramètre de la fonction représente l'index de l'élément dans la séquence source. + Type des éléments de . + + ou est null. + + + Réalise un classement des éléments d'une séquence dans l'ordre croissant selon une clé. + + dont les éléments sont triés selon une clé. + + qui contient les éléments à trier. + Fonction permettant d'extraire une clé de chaque élément. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou est null. + + + Réalise un classement des éléments d'une séquence dans l'ordre croissant à l'aide d'un comparateur spécifié. + + dont les éléments sont triés selon une clé. + + qui contient les éléments à trier. + Fonction permettant d'extraire une clé de chaque élément. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou ou est null. + + + Réalise un classement des éléments d'une séquence dans l'ordre décroissant selon une clé. + + dont les éléments sont triés dans l'ordre décroissant selon une clé. + + qui contient les éléments à trier. + Fonction permettant d'extraire une clé de chaque élément. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou est null. + + + Réalise un classement des éléments d'une séquence dans l'ordre décroissant à l'aide d'un comparateur spécifié. + Collection dont les éléments sont triés par ordre décroissant selon une clé. + + qui contient les éléments à trier. + Fonction permettant d'extraire une clé de chaque élément. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction . + + ou ou est null. + + + Produit l'union de deux séquences à l'aide du comparateur d'égalité par défaut. + + qui contient les éléments des deux séquences d'entrée, à l'exception des éléments en double. + Séquence dont les éléments distincts forment le premier jeu pour l'opération d'union. + Séquence dont les éléments distincts forment le second jeu pour l'opération d'union. + Type des éléments des séquences d'entrée. + + ou est null. + + + Produit l'union de deux séquences à l'aide d'un spécifié. + + qui contient les éléments des deux séquences d'entrée, à l'exception des éléments en double. + Séquence dont les éléments distincts forment le premier jeu pour l'opération d'union. + Séquence dont les éléments distincts forment le second jeu pour l'opération d'union. + + pour comparer les valeurs. + Type des éléments des séquences d'entrée. + + ou est null. + + + Filtre une séquence de valeurs selon un prédicat. + + qui contient les éléments de la séquence d'entrée qui satisfont à la condition spécifiée par . + + à filtrer. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Filtre une séquence de valeurs selon un prédicat.L'index de chaque élément est utilisé dans la logique de la fonction de prédicat. + + qui contient les éléments de la séquence d'entrée qui satisfont à la condition spécifiée par . + + à filtrer. + Fonction permettant de tester chaque élément par rapport à une condition ; le deuxième paramètre de la fonction représente l'index de l'élément dans la séquence source. + Type des éléments de . + + ou est null. + + + Fusionne deux séquences en utilisant la fonction de prédicat spécifiée. + + qui contient les éléments fusionnés des deux séquences d'entrée. + Première séquence à fusionner. + Seconde séquence à fusionner. + Fonction qui spécifie comment fusionner les éléments des deux séquences. + Type des éléments de la première séquence d'entrée. + Type des éléments de la seconde séquence d'entrée. + Type des éléments de la séquence résultante. + + ou est null. + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netcore50/it/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/it/System.Linq.Queryable.xml new file mode 100644 index 0000000..d1c8247 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/it/System.Linq.Queryable.xml @@ -0,0 +1,1266 @@ + + + + System.Linq.Queryable + + + + Rappresenta una struttura ad albero dell'espressione e fornisce la funzionalità per eseguire la struttura ad albero dell'espressione dopo la riscrittura. + + + Inizializza una nuova istanza della classe . + + + Rappresenta una struttura ad albero dell'espressione e fornisce la funzionalità per eseguire la struttura ad albero dell'espressione dopo la riscrittura. + Tipo di dati del valore risultante dall'esecuzione della struttura ad albero dell'espressione. + + + Inizializza una nuova istanza della classe . + Struttura ad albero dell'espressione da associare alla nuova istanza. + + + Rappresenta un oggetto come origine dati . + + + Inizializza una nuova istanza della classe . + + + Rappresenta una raccolta come origine dati . + Tipo di dati nella raccolta. + + + Inizializza una nuova istanza della classe e la associa a una raccolta . + Raccolta da associare alla nuova istanza. + + + Inizializza una nuova istanza della classe e associa l'istanza a una struttura ad albero dell'espressione. + Struttura ad albero dell'espressione da associare alla nuova istanza. + + + Restituisce un enumeratore che può scorrere la raccolta associata o, se è null, può scorrere la raccolta risultante dalla riscrittura della struttura ad albero dell'espressione associata come query su un'origine dati e dalla relativa esecuzione. + Enumeratore che può essere utilizzato per scorrere l'origine dati associata. + + + Restituisce un enumeratore che può scorrere la raccolta associata o, se è null, può scorrere la raccolta risultante dalla riscrittura della struttura ad albero dell'espressione associata come query su un'origine dati e dalla relativa esecuzione. + Enumeratore che può essere utilizzato per scorrere l'origine dati associata. + + + Ottiene il tipo di dati nella raccolta rappresentata da questa istanza. + Tipo di dati nella raccolta rappresentata da questa istanza. + + + Ottiene la struttura ad albero dell'espressione rappresentata da questa istanza o ad essa associata. + Struttura ad albero dell'espressione rappresentata da questa istanza o ad essa associata. + + + Ottiene il provider di query associato a questa istanza. + Provider di query associato a questa istanza. + + + Costruisce un nuovo oggetto e lo associa alla struttura ad albero dell'espressione specificata che rappresenta una raccolta di dati. + Oggetto EnumerableQuery associato a . + Struttura ad albero dell'espressione da eseguire. + Tipo di dati nella raccolta rappresentata da . + + + Costruisce un nuovo oggetto e lo associa alla struttura ad albero dell'espressione specificata che rappresenta una raccolta di dati. + Oggetto associato a . + Struttura ad albero dell'espressione che rappresenta una raccolta di dati. + + + Esegue un'espressione dopo la riscrittura per chiamare i metodi anziché i metodi su tutte le origini dati enumerabili su cui non è possibile eseguire una query mediante i metodi . + Valore risultante dall'esecuzione di . + Struttura ad albero dell'espressione da eseguire. + Tipo di dati nella raccolta rappresentata da . + + + Esegue un'espressione dopo la riscrittura per chiamare i metodi anziché i metodi su tutte le origini dati enumerabili su cui non è possibile eseguire una query mediante i metodi . + Valore risultante dall'esecuzione di . + Struttura ad albero dell'espressione da eseguire. + + + Restituisce una rappresentazione testuale della raccolta enumerabile o, se è null, della struttura ad albero dell'espressione associata a questa istanza. + Rappresentazione testuale della raccolta enumerabile o, se è null, della struttura ad albero dell'espressione associata a questa istanza. + + + Fornisce un set di metodi static(Shared in Visual Basic) per l'esecuzione di query su strutture dei dati che implementano . + + + Applica una funzione accumulatore a una sequenza. + Valore finale dell'accumulatore. + Una sequenza su cui aggregare. + Una funzione accumulatore da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + non contiene elementi. + + + Applica una funzione accumulatore a una sequenza.Il valore di inizializzazione specificato viene utilizzato come valore iniziale dell'accumulatore. + Valore finale dell'accumulatore. + Una sequenza su cui aggregare. + Valore iniziale dell'accumulatore. + Una funzione accumulatore da richiamare per ogni elemento. + Tipo degli elementi di . + Tipo del valore dell'accumulatore. + + o è null. + + + Applica una funzione accumulatore a una sequenza.Il valore di inizializzazione specificato viene utilizzato come valore iniziale dell'accumulatore e la funzione specificata viene utilizzata per selezionare il valore risultante. + Il valore finale trasformato dell'accumulatore. + Una sequenza su cui aggregare. + Valore iniziale dell'accumulatore. + Una funzione accumulatore da richiamare per ogni elemento. + Una funzione per trasformare il valore finale dell'accumulatore nel valore risultante. + Tipo degli elementi di . + Tipo del valore dell'accumulatore. + Il tipo del valore risultante. + + o o è null. + + + Determina se tutti gli elementi di una sequenza soddisfano una condizione. + true se ogni elemento della sequenza di origine supera il test per il predicato specificato o se la sequenza è vuota; in caso contrario, false. + Una sequenza i cui elementi sono da testare rispetto a una condizione. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Determina se una sequenza contiene elementi. + true se la sequenza di origine contiene elementi; in caso contrario, false. + Una sequenza da verificare per controllare se è vuota. + Tipo degli elementi di . + + è null. + + + Determina un qualsiasi elemento di una sequenza soddisfa una condizione. + true se gli elementi nella sequenza di origine superano il test per il predicato specificato; in caso contrario, false. + Una sequenza i cui elementi sono da testare rispetto a una condizione. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Converte un generico oggetto in un generico oggetto . + Un oggetto che rappresenta la sequenza di input. + Sequenza da convertire. + Tipo degli elementi di . + + è null. + + + Converte un oggetto in un oggetto . + Un oggetto che rappresenta la sequenza di input. + Sequenza da convertire. + + non implementa per qualche . + + è null. + + + Calcola la media di una sequenza di valori . + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + + è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori . + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + + è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori . + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + + è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori . + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + + è null. + + non contiene elementi. + + + Calcola la media di una sequenza che ammette valori NULL. + Media della sequenza di valori; null se la sequenza di origine è vuota o contiene solo valori null. + Una sequenza che ammette valori nullable di cui calcolare la media. + + è null. + + + Calcola la media di una sequenza che ammette valori NULL. + Media della sequenza di valori; null se la sequenza di origine è vuota o contiene solo valori null. + Una sequenza che ammette valori nullable di cui calcolare la media. + + è null. + + + Calcola la media di una sequenza che ammette valori NULL. + Media della sequenza di valori; null se la sequenza di origine è vuota o contiene solo valori null. + Una sequenza che ammette valori nullable di cui calcolare la media. + + è null. + + + Calcola la media di una sequenza che ammette valori NULL. + Media della sequenza di valori; null se la sequenza di origine è vuota o contiene solo valori null. + Una sequenza che ammette valori nullable di cui calcolare la media. + + è null. + + + Calcola la media di una sequenza che ammette valori NULL. + Media della sequenza di valori; null se la sequenza di origine è vuota o contiene solo valori null. + Una sequenza che ammette valori nullable di cui calcolare la media. + + è null. + + + Calcola la media di una sequenza di valori . + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + + è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza dei valori. + Una sequenza di valori utilizzata per calcolare una media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + non contiene elementi. + + + Calcola la media di una sequenza che ammette valori NULL, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza di valori; null se la sequenza è vuota o contiene solo valori null. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la media di una sequenza che ammette valori NULL, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza di valori; null se la sequenza è vuota o contiene solo valori null. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la media di una sequenza che ammette valori NULL, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza di valori; null se la sequenza è vuota o contiene solo valori null. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la media di una sequenza che ammette valori NULL, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza di valori; null se la sequenza è vuota o contiene solo valori null. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la media di una sequenza che ammette valori NULL, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza di valori; null se la sequenza è vuota o contiene solo valori null. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la media di una sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + non contiene elementi. + + + Converte gli elementi di un oggetto nel tipo specificato. + Oggetto che contiene ogni elemento della sequenza di origine convertito nel tipo specificato. + Oggetto che contiene gli elementi da convertire. + Tipo in cui convertire gli elementi di . + + è null. + Non è possibile eseguire il cast di un elemento della sequenza al tipo . + + + Concatena due sequenze. + Un oggetto che contiene gli elementi concatenati delle due sequenze di input. + Prima sequenza da concatenare. + Sequenza da concatenare alla prima sequenza. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Determina se una sequenza contiene uno specifico elemento utilizzando l'operatore di confronto uguaglianze predefinito. + true se la sequenza di input contiene un elemento con il valore specificato; altrimenti, false. + Oggetto in cui individuare . + Oggetto da individuare nella sequenza . + Tipo degli elementi di . + + è null. + + + Determina se una sequenza contiene un elemento specificato utilizzando un oggetto specificato. + true se la sequenza di input contiene un elemento con il valore specificato; altrimenti, false. + Oggetto in cui individuare . + Oggetto da individuare nella sequenza . + Oggetto per confrontare i valori. + Tipo degli elementi di . + + è null. + + + Restituisce il numero di elementi in una sequenza. + Numero di elementi nella sequenza di input. + Oggetto che contiene gli elementi da contare. + Tipo degli elementi di . + + è null. + Il numero di elementi in è maggiore di . + + + Restituisce il numero di elementi nella sequenza specificata che soddisfano una condizione. + Il numero di elementi nella sequenza che soddisfa la condizione nella funzione predicativa. + Oggetto che contiene gli elementi da contare. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + Il numero di elementi in è maggiore di . + + + Restituisce gli elementi della sequenza specificata o il valore predefinito del parametro di tipo in una raccolta di singleton se la sequenza è vuota. + Oggetto che contiene default() se è vuoto; in caso contrario, . + Oggetto per il quale restituire un valore predefinito se vuoto. + Tipo degli elementi di . + + è null. + + + Restituisce gli elementi della sequenza specificata o il valore specificato in una raccolta di singleton se la sequenza è vuota. + Oggetto che contiene se è vuota; in caso contrario, . + Oggetto per il quale restituire il valore specificato se vuoto. + Valore da restituire se la sequenza è vuota. + Tipo degli elementi di . + + è null. + + + Restituisce elementi distinti da una sequenza utilizzando l'operatore di confronto uguaglianze predefinito per confrontare i valori. + Oggetto che contiene elementi distinti da . + Oggetto da cui rimuovere i duplicati. + Tipo degli elementi di . + + è null. + + + Restituisce elementi distinti da una sequenza utilizzando uno specificato per confrontare valori. + Oggetto che contiene elementi distinti da . + Oggetto da cui rimuovere i duplicati. + Oggetto per confrontare i valori. + Tipo degli elementi di . + + o è null. + + + Restituisce l'elemento in corrispondenza dell’indice specificato in una sequenza. + L’elemento alla posizione specificata in . + Oggetto dal quale restituire un elemento. + Indice in base zero dell'elemento da recuperare. + Tipo degli elementi di . + + è null. + + è minore di zero. + + + Restituisce l'elemento in corrispondenza di un indice specificato in una sequenza o un valore predefinito se l'indice è esterno all'intervallo. + default() se è esterno ai limiti di ; in caso contrario, l'elemento in corrispondenza della posizione specificata in . + Oggetto dal quale restituire un elemento. + Indice in base zero dell'elemento da recuperare. + Tipo degli elementi di . + + è null. + + + Produce la differenza insiemistica di due sequenze utilizzando l'operatore di confronto eguaglianze predefinito per confrontare i valori. + Oggetto che contiene la differenza insiemistica delle due sequenze. + Un oggetto di cui saranno restituiti gli elementi che non sono presenti anche in . + Un oggetto i cui elementi che sono presenti anche nella prima sequenza non saranno visualizzati nella sequenza restituita. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Produce la differenza insiemistica delle due sequenze utilizzando l’oggetto specificato per confrontare i valori. + Oggetto che contiene la differenza insiemistica delle due sequenze. + Un oggetto di cui saranno restituiti gli elementi che non sono presenti anche in . + Un oggetto i cui elementi che sono presenti anche nella prima sequenza non saranno visualizzati nella sequenza restituita. + Oggetto per confrontare i valori. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Restituisce il primo elemento di una sequenza. + Il primo elemento in . + Oggetto di cui restituire il primo elemento. + Tipo degli elementi di . + + è null. + La sequenza di origine è vuota. + + + Restituisce il primo elemento di una sequenza che soddisfa una condizione specificata. + Il primo elemento in che passa il test rispetto a . + Oggetto dal quale restituire un elemento. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + Nessun elemento soddisfa la condizione in .- oppure -La sequenza di origine è vuota. + + + Restituisce il primo elemento di una sequenza o un valore predefinito se la sequenza non contiene elementi. + default() se è vuota; in caso contrario, il primo elemento di . + Oggetto di cui restituire il primo elemento. + Tipo degli elementi di . + + è null. + + + Restituisce il primo elemento di una sequenza che soddisfa una condizione specificata o un valore predefinito se un tale elemento non viene trovato. + default() se è vuota o se nessun elemento supera il test specificato da ; in caso contrario, il primo elemento in che supera il test specificato da . + Oggetto dal quale restituire un elemento. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Raggruppa gli elementi di una sequenza secondo una specificata funzione del selettore principale. + Un IQueryable<IGrouping<TKey, TSource>> in C# o IQueryable(Of IGrouping(Of TKey, TSource)) in Visual Basic dove ogni oggetto contiene una sequenza di oggetti e una chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + + o è null. + + + Raggruppa gli elementi di una sequenza secondo una specificata funzione del selettore principale e confronta le chiavi utilizzando un operatore di confronto specificato. + Un IQueryable<IGrouping<TKey, TSource>> in C# o IQueryable(Of IGrouping(Of TKey, TSource)) in Visual Basic dove ogni contiene una sequenza di oggetti e una chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Oggetto di cui confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + + o o è null. + + + Raggruppa gli elementi di una sequenza in base a una funzione specificata del selettore principale e proietta gli elementi di ogni gruppo utilizzando una funzione specificata. + Un IQueryable<IGrouping<TKey, TElement>> in C# o IQueryable(Of IGrouping(Of TKey, TElement)) in Visual Basic dove ogni contiene una sequenza di oggetti di tipo e una chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Funzione per eseguire il mapping di ogni elemento di origine a un elemento in un oggetto . + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + Tipo degli elementi contenuti in ciascun oggetto . + + o o è null. + + + Raggruppa gli elementi di una sequenza e proietta gli elementi di ogni gruppo utilizzando una funzione specificata.I valori chiave vengono confrontati utilizzando un operatore di confronto specificato. + Un IQueryable<IGrouping<TKey, TElement>> in C# o IQueryable(Of IGrouping(Of TKey, TElement)) in Visual Basic dove ogni contiene una sequenza di oggetti di tipo e una chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Funzione per eseguire il mapping di ogni elemento di origine a un elemento in un oggetto . + Oggetto di cui confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + Tipo degli elementi contenuti in ciascun oggetto . + + o o o è null. + + + Raggruppa gli elementi di una sequenza in base a una funzione del selettore principale specificata e crea un valore risultante da ciascun gruppo e relativa chiave.Gli elementi di ogni gruppo vengono proiettati utilizzando una funzione specificata. + Oggetto T:System.Linq.IQueryable`1 che ha un argomento di tipo di e dove ogni elemento rappresenta una proiezione su un gruppo e sulla relativa chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Funzione per eseguire il mapping di ogni elemento di origine a un elemento in un oggetto . + Funzione per creare un valore di risultato da ogni gruppo. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + Tipo degli elementi contenuti in ciascun oggetto . + Tipo del valore restituito dall'oggetto . + + o o o è null. + + + Raggruppa gli elementi di una sequenza in base a una funzione del selettore principale specificata e crea un valore risultante da ciascun gruppo e relativa chiave.Le chiavi sono confrontate utilizzando un operatore di confronto specificato e gli elementi di ogni gruppo vengono proiettati utilizzando una funzione specificata. + Oggetto T:System.Linq.IQueryable`1 che ha un argomento di tipo di e dove ogni elemento rappresenta una proiezione su un gruppo e sulla relativa chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Funzione per eseguire il mapping di ogni elemento di origine a un elemento in un oggetto . + Funzione per creare un valore di risultato da ogni gruppo. + Oggetto di cui confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + Tipo degli elementi contenuti in ciascun oggetto . + Tipo del valore restituito dall'oggetto . + + o o o o è null. + + + Raggruppa gli elementi di una sequenza in base a una funzione del selettore principale specificata e crea un valore risultante da ciascun gruppo e relativa chiave. + Oggetto T:System.Linq.IQueryable`1 che ha un argomento di tipo di e dove ogni elemento rappresenta una proiezione su un gruppo e sulla relativa chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Funzione per creare un valore di risultato da ogni gruppo. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + Tipo del valore restituito dall'oggetto . + + o o è null. + + + Raggruppa gli elementi di una sequenza in base a una funzione del selettore principale specificata e crea un valore risultante da ciascun gruppo e relativa chiave.Le chiavi vengono confrontate utilizzando un operatore di confronto specificato. + Oggetto T:System.Linq.IQueryable`1 che ha un argomento di tipo di e dove ogni elemento rappresenta una proiezione su un gruppo e sulla relativa chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Funzione per creare un valore di risultato da ogni gruppo. + Oggetto di cui confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + Tipo del valore restituito dall'oggetto . + + o o o è null. + + + Correla gli elementi di due sequenze in base all'uguaglianza delle chiavi e raggruppa i risultati.Per confrontare le chiavi viene utilizzato l'operatore di confronto uguaglianze predefinito. + Un oggetto che contiene elementi di tipo ottenuti eseguendo un'aggiunta raggruppata delle due sequenze. + Prima sequenza da unire. + Sequenza da unire alla prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della seconda sequenza. + Funzione per creare un elemento di risultato da un elemento dalla prima sequenza e una raccolta di elementi corrispondenti dalla seconda sequenza. + Tipo degli elementi della prima sequenza. + Tipo degli elementi della seconda sequenza. + Tipo delle chiavi restituite dalle funzioni del selettore principale. + Tipo degli elementi di risultato. + + o o o o è null. + + + Correla gli elementi di due sequenze in base all'uguaglianza delle chiavi e raggruppa i risultati.Viene utilizzato un oggetto specificato per confrontare le chiavi. + Un oggetto che contiene elementi di tipo ottenuti eseguendo un'aggiunta raggruppata delle due sequenze. + Prima sequenza da unire. + Sequenza da unire alla prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della seconda sequenza. + Funzione per creare un elemento di risultato da un elemento dalla prima sequenza e una raccolta di elementi corrispondenti dalla seconda sequenza. + Un operatore di confronto per la codifica hash e il confronto delle chiavi. + Tipo degli elementi della prima sequenza. + Tipo degli elementi della seconda sequenza. + Tipo delle chiavi restituite dalle funzioni del selettore principale. + Tipo degli elementi di risultato. + + o o o o è null. + + + Produce l’intersezione insiemistica di due sequenze utilizzando l'operatore di confronto uguaglianze predefinito per confrontare i valori. + Una sequenza che contiene l'intersezione insiemistica delle due sequenze. + Una sequenza di cui vengono restituiti gli elementi distinti presenti anche in . + Una sequenza di cui vengono restituiti gli elementi distinti presenti anche nella prima sequenza. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Produce l’intersezione insiemistica delle due sequenze utilizzando l’oggetto specificato per confrontare i valori. + Oggetto che contiene l’intersezione insiemistica delle due sequenze. + Un oggetto di cui vengono restituiti gli elementi distinti che sono presenti anche in . + Un oggetto di cui vengono restituiti gli elementi distinti presenti anche nella prima sequenza. + Oggetto per confrontare i valori. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Correla gli elementi di due sequenze in base alle chiavi corrispondenti.Per confrontare le chiavi viene utilizzato l'operatore di confronto uguaglianze predefinito. + Un oggetto che contiene elementi di tipo ottenuti eseguendo un inner join sulle due sequenze. + Prima sequenza da unire. + Sequenza da unire alla prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della seconda sequenza. + Funzione per creare un elemento di risultato da due elementi corrispondenti. + Tipo degli elementi della prima sequenza. + Tipo degli elementi della seconda sequenza. + Tipo delle chiavi restituite dalle funzioni del selettore principale. + Tipo degli elementi di risultato. + + o o o o è null. + + + Correla gli elementi di due sequenze in base alle chiavi corrispondenti.Viene utilizzato un oggetto specificato per confrontare le chiavi. + Un oggetto che contiene elementi di tipo ottenuti eseguendo un inner join sulle due sequenze. + Prima sequenza da unire. + Sequenza da unire alla prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della seconda sequenza. + Funzione per creare un elemento di risultato da due elementi corrispondenti. + Un oggetto per la codifica hash e il confronto delle chiavi. + Tipo degli elementi della prima sequenza. + Tipo degli elementi della seconda sequenza. + Tipo delle chiavi restituite dalle funzioni del selettore principale. + Tipo degli elementi di risultato. + + o o o o è null. + + + Restituisce l'ultimo elemento in una sequenza. + Il valore dell’ultima posizione in . + Oggetto di cui restituire l’ultimo elemento. + Tipo degli elementi di . + + è null. + La sequenza di origine è vuota. + + + Restituisce l’ultimo elemento di una sequenza che soddisfa una condizione specificata. + L'ultimo elemento in che supera il test specificato da . + Oggetto dal quale restituire un elemento. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + Nessun elemento soddisfa la condizione in .- oppure -La sequenza di origine è vuota. + + + Restituisce l’ultimo elemento in una sequenza o un valore predefinito se la sequenza non contiene elementi. + default() se è vuota; in caso contrario, l’ultimo elemento di . + Oggetto di cui restituire l’ultimo elemento. + Tipo degli elementi di . + + è null. + + + Restituisce l’ultimo elemento di una sequenza che soddisfa una condizione specificata o un valore predefinito se un tale elemento non viene trovato. + default() se è vuota o se nessun elemento supera il test nella funzione predicativa; in caso contrario, l'ultimo elemento di che passa il test nella funzione predicativa. + Oggetto dal quale restituire un elemento. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Restituisce un oggetto che rappresenta il numero totale di elementi in una sequenza. + Numero di elementi in . + Oggetto che contiene gli elementi da contare. + Tipo degli elementi di . + + è null. + Il numero di elementi è maggiore di . + + + Restituisce un oggetto che rappresenta il numero di elementi in una sequenza che soddisfano una condizione. + Il numero di elementi in che soddisfa la condizione nella funzione predicativa. + Oggetto che contiene gli elementi da contare. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + Il numero di elementi corrispondenti è maggiore di . + + + Restituisce il valore massimo di un generico oggetto . + Valore massimo della sequenza. + Una sequenza di valori della quale determinare il massimo. + Tipo degli elementi di . + + è null. + + + Richiama una funzione di proiezione su ogni elemento di un generico oggetto e restituisce il valore massimo risultante. + Valore massimo della sequenza. + Una sequenza di valori della quale determinare il massimo. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + Tipo del valore restituito dalla funzione rappresentata dall'oggetto . + + o è null. + + + Restituisce il valore minimo di un generico oggetto . + Valore minimo della sequenza. + Una sequenza di valori della quale determinare il minimo. + Tipo degli elementi di . + + è null. + + + Richiama una funzione di proiezione su ogni elemento di un generico oggetto e restituisce il valore minimo risultante. + Valore minimo della sequenza. + Una sequenza di valori della quale determinare il minimo. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + Tipo del valore restituito dalla funzione rappresentata dall'oggetto . + + o è null. + + + Filtra gli elementi di un oggetto in base a un tipo specificato. + Raccolta che contiene elementi da che sono di tipo . + Un oggetto i cui elementi devono essere filtrati. + Il tipo in base al quale filtrare gli elementi della sequenza. + + è null. + + + Ordina in senso crescente gli elementi di una sequenza secondo una chiave. + Oggetto i cui elementi vengono ordinati secondo una chiave. + Sequenza di valori da ordinare. + Funzione per estrarre una chiave da un elemento. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o è null. + + + Ordina in ordine crescente gli elementi di una sequenza utilizzando un operatore di confronto specificato. + Oggetto i cui elementi vengono ordinati secondo una chiave. + Sequenza di valori da ordinare. + Funzione per estrarre una chiave da un elemento. + Oggetto per confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o o è null. + + + Ordina in senso decrescente gli elementi di una sequenza secondo una chiave. + Oggetto i cui elementi vengono ordinati in senso decrescente in base a una chiave. + Sequenza di valori da ordinare. + Funzione per estrarre una chiave da un elemento. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o è null. + + + Ordina in senso decrescente gli elementi di una sequenza utilizzando un operatore di confronto specificato. + Oggetto i cui elementi vengono ordinati in senso decrescente in base a una chiave. + Sequenza di valori da ordinare. + Funzione per estrarre una chiave da un elemento. + Oggetto per confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o o è null. + + + Inverte l'ordine degli elementi in una sequenza. + Un oggetto i cui elementi corrispondono a quelli della sequenza di input, in ordine inverso. + Sequenza di valori da invertire. + Tipo degli elementi di . + + è null. + + + Proietta ogni elemento di una sequenza in una nuova maschera. + Un oggetto i cui elementi sono il risultato ottenuto richiamando una funzione di proiezione su ogni elemento di . + Sequenza di valori da proiettare. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + Tipo del valore restituito dalla funzione rappresentata dall'oggetto . + + o è null. + + + Proietta ogni elemento di una sequenza in un nuovo modulo incorporando l'indice dell'elemento. + Un oggetto i cui elementi sono il risultato ottenuto richiamando una funzione di proiezione su ogni elemento di . + Sequenza di valori da proiettare. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + Tipo del valore restituito dalla funzione rappresentata dall'oggetto . + + o è null. + + + Proietta ogni elemento di una sequenza a un oggetto e richiama una funzione del selettore di risultato su ogni elemento al suo interno.I valori risultanti da ogni sequenza intermedia vengono combinati in un singola sequenza unidimensionale e restituiti. + Un oggetto i cui elementi sono il risultato ottenuto richiamando la funzione di proiezione uno a molti su ogni elemento di ed eseguire quindi il mapping di ognuno degli elementi di tale sequenza e del corrispondente elemento di a un elemento di risultato. + Sequenza di valori da proiettare. + Una funzione di proiezione da applicare a ogni elemento della sequenza di input. + Una funzione di proiezione da applicare a ogni elemento di ogni sequenza intermedia. + Tipo degli elementi di . + Il tipo degli elementi intermedi raccolti dalla funzione rappresentata da . + Tipo degli elementi della sequenza risultante. + + o o è null. + + + Proietta ogni elemento di una sequenza a un oggetto e combina le sequenze risultanti in una sequenza. + Un oggetto i cui elementi sono il risultato ottenuto richiamando una funzione di proiezione uno a molti su ogni elemento della sequenza di input. + Sequenza di valori da proiettare. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + Il tipo degli elementi della sequenza restituiti dalla funzione rappresentata da . + + o è null. + + + Proietta ogni elemento di una sequenza a un oggetto che incorpora l'indice dell'elemento di origine che lo ha prodotto.Viene quindi richiamata una funzione del selettore di risultato su ogni elemento di ogni sequenza intermedia e i valori risultanti vengono combinati in una singola sequenza unidimensionale e restituiti. + Un oggetto i cui elementi sono il risultato ottenuto richiamando la funzione di proiezione uno a molti su ogni elemento di ed eseguire quindi il mapping di ognuno degli elementi di tale sequenza e del corrispondente elemento di a un elemento di risultato. + Sequenza di valori da proiettare. + Una funzione di proiezione da applicare a ogni elemento della sequenza di input; il secondo parametro di questa funzione rappresenta l'indice dell'elemento di origine. + Una funzione di proiezione da applicare a ogni elemento di ogni sequenza intermedia. + Tipo degli elementi di . + Il tipo degli elementi intermedi raccolti dalla funzione rappresentata da . + Tipo degli elementi della sequenza risultante. + + o o è null. + + + Proietta ogni elemento di una sequenza a un oggetto e combina le sequenze risultanti in una sequenza.L'indice di ogni elemento di origine viene utilizzato nella maschera proiettata di tale elemento. + Un oggetto i cui elementi sono il risultato ottenuto richiamando una funzione di proiezione uno a molti su ogni elemento della sequenza di input. + Sequenza di valori da proiettare. + Una funzione di proiezione da applicare a ogni elemento; il secondo parametro di questa funzione rappresenta l'indice dell'elemento di origine. + Tipo degli elementi di . + Il tipo degli elementi della sequenza restituiti dalla funzione rappresentata da . + + o è null. + + + Determina se due sequenze sono uguali utilizzando l'operatore di confronto uguaglianze predefinito per confrontare gli elementi. + true se le due sequenze di origine sono di lunghezza uguale e gli elementi corrispondenti risultano uguali; in caso contrario, false. + Un oggetto cui elementi devono venire confrontati con quelli di . + Un oggetto i cui elementi devono venire confrontati con quelli della prima sequenza. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Determina se due sequenze sono uguali utilizzando un oggetto specificato per confrontare gli elementi. + true se le due sequenze di origine sono di lunghezza uguale e gli elementi corrispondenti risultano uguali; in caso contrario, false. + Un oggetto cui elementi devono venire confrontati con quelli di . + Un oggetto i cui elementi devono venire confrontati con quelli della prima sequenza. + Un oggetto da utilizzare per confrontare gli elementi. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Restituisce il singolo elemento di una sequenza e genera un'eccezione se nella sequenza non è presente esattamente un elemento. + Singolo elemento della sequenza di input. + Oggetto di cui restituire il singolo elemento. + Tipo degli elementi di . + + è null. + + presenta più di un elemento. + + + Restituisce il singolo elemento di una sequenza che soddisfa una condizione specificata e genera un'eccezione se esiste più di un elemento. + Il singolo elemento della sequenza di input che soddisfa la condizione in . + Un oggetto dal quale restituire un singolo elemento. + Funzione per testare un elemento per una condizione. + Tipo degli elementi di . + Il parametro o è null. + Nessun elemento soddisfa la condizione in .- oppure -Più di un elemento soddisfa la condizione in .- oppure -La sequenza di origine è vuota. + + + Restituisce il singolo elemento di una sequenza o un valore predefinito se la sequenza è vuota. Questo metodo genera un'eccezione se esiste più di un elemento nella sequenza. + Il singolo elemento della sequenza di input, o default() se la sequenza non contiene elementi. + Oggetto di cui restituire il singolo elemento. + Tipo degli elementi di . + + è null. + + presenta più di un elemento. + + + Restituisce il singolo elemento di una sequenza che soddisfa una condizione specificata o un valore predefinito se tale elemento esiste. Questo metodo genera un'eccezione se più di un elemento soddisfa la condizione. + Il singolo elemento della sequenza di input che soddisfa la condizione in , o default() se tale elemento non viene trovato. + Un oggetto dal quale restituire un singolo elemento. + Funzione per testare un elemento per una condizione. + Tipo degli elementi di . + Il parametro o è null. + Più di un elemento soddisfa la condizione in . + + + Ignora un numero specificato di elementi in una sequenza e quindi restituisce gli elementi rimanenti. + Un oggetto che contiene elementi presenti dopo l'indice specificato nella sequenza di input. + Oggetto dal quale restituire elementi. + Il numero di elementi da ignorare prima di restituire gli elementi rimanenti. + Tipo degli elementi di . + + è null. + + + Ignora gli elementi in sequenza finché la condizione specificata è soddisfatta e quindi restituisce gli elementi rimanenti. + Un oggetto che contiene elementi da a partire dal primo elemento nella serie lineare che non supera il test specificato da . + Oggetto dal quale restituire elementi. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Ignora gli elementi in sequenza finché la condizione specificata è soddisfatta e quindi restituisce gli elementi rimanenti.L'indice dell'elemento viene utilizzato nella logica della funzione predicativa. + Un oggetto che contiene elementi da a partire dal primo elemento nella serie lineare che non supera il test specificato da . + Oggetto dal quale restituire elementi. + Una funzione per testare ogni elemento per una condizione; il secondo parametro di questa funzione rappresenta l'indice dell'elemento di origine. + Tipo degli elementi di . + Il parametro o è null. + + + Calcola la somma di una sequenza di valori . + Somma dei valori della sequenza. + Sequenza di valori di cui calcolare la somma. + + è null. + La somma è maggiore di . + + + Calcola la somma di una sequenza di valori . + Somma dei valori della sequenza. + Sequenza di valori di cui calcolare la somma. + + è null. + + + Calcola la somma di una sequenza di valori . + Somma dei valori della sequenza. + Sequenza di valori di cui calcolare la somma. + + è null. + La somma è maggiore di . + + + Calcola la somma di una sequenza di valori . + Somma dei valori della sequenza. + Sequenza di valori di cui calcolare la somma. + + è null. + La somma è maggiore di . + + + Calcola la somma di una sequenza che ammette valori nullable. + Somma dei valori della sequenza. + Sequenza che ammette valori nullable di cui calcolare la somma. + + è null. + La somma è maggiore di . + + + Calcola la somma di una sequenza che ammette valori nullable. + Somma dei valori della sequenza. + Una sequenza che ammette valori nullable di cui calcolare la somma. + + è null. + + + Calcola la somma di una sequenza che ammette valori nullable. + Somma dei valori della sequenza. + Sequenza che ammette valori nullable di cui calcolare la somma. + + è null. + La somma è maggiore di . + + + Calcola la somma di una sequenza che ammette valori nullable. + Somma dei valori della sequenza. + Sequenza che ammette valori nullable di cui calcolare la somma. + + è null. + La somma è maggiore di . + + + Calcola la somma di una sequenza che ammette valori nullable. + Somma dei valori della sequenza. + Una sequenza che ammette valori nullable di cui calcolare la somma. + + è null. + + + Calcola la somma di una sequenza di valori . + Somma dei valori della sequenza. + Sequenza di valori di cui calcolare la somma. + + è null. + + + Calcola la somma della sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + La somma è maggiore di . + + + Calcola la somma della sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la somma della sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + La somma è maggiore di . + + + Calcola la somma della sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + La somma è maggiore di . + + + Calcola la somma della sequenza di valori nullable, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + La somma è maggiore di . + + + Calcola la somma della sequenza di valori nullable, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la somma della sequenza di valori nullable, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + La somma è maggiore di . + + + Calcola la somma della sequenza di valori nullable, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + La somma è maggiore di . + + + Calcola la somma della sequenza di valori nullable, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la somma della sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Restituisce un numero specificato di elementi contigui dall'inizio di una sequenza. + Oggetto che contiene il numero specificato di elementi dall'inizio di . + Sequenza dalla quale vengono restituiti gli elementi. + Numero di elementi da restituire. + Tipo degli elementi di . + + è null. + + + Restituisce elementi di una sequenza finché una condizione specificata è soddisfatta. + Oggetto che contiene elementi dalla sequenza di input che precedono il primo elemento che non soddisfa più il test specificato da . + Sequenza dalla quale vengono restituiti gli elementi. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Restituisce elementi di una sequenza finché una condizione specificata è soddisfatta.L'indice dell'elemento viene utilizzato nella logica della funzione predicativa. + Oggetto che contiene elementi dalla sequenza di input che precedono il primo elemento che non soddisfa più il test specificato da . + Sequenza dalla quale vengono restituiti gli elementi. + Una funzione per testare ogni elemento per una condizione; il secondo parametro della funzione rappresenta l'indice dell'elemento della sequenza di origine. + Tipo degli elementi di . + Il parametro o è null. + + + Esegue un successivo ordinamento in senso crescente in base a una chiave degli elementi di una sequenza. + Oggetto i cui elementi vengono ordinati secondo una chiave. + Oggetto che contiene gli elementi da ordinare. + Funzione per estrarre una chiave da ogni elemento. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o è null. + + + Esegue un ordinamento secondario in senso crescente degli elementi di una sequenza utilizzando un operatore di confronto specificato. + Oggetto i cui elementi vengono ordinati secondo una chiave. + Oggetto che contiene gli elementi da ordinare. + Funzione per estrarre una chiave da ogni elemento. + Oggetto per confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o o è null. + + + Esegue un successivo ordinamento in senso decrescente in base a una chiave degli elementi di una sequenza. + Oggetto i cui elementi vengono ordinati in senso decrescente in base a una chiave. + Oggetto che contiene gli elementi da ordinare. + Funzione per estrarre una chiave da ogni elemento. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o è null. + + + Esegue un ordinamento secondario in senso decrescente degli elementi di una sequenza utilizzando un operatore di confronto specificato. + Raccolta i cui elementi vengono disposti in ordine decrescente in base a una chiave. + Oggetto che contiene gli elementi da ordinare. + Funzione per estrarre una chiave da ogni elemento. + Oggetto per confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione . + + o o è null. + + + Produce l'unione insiemistica delle due sequenze utilizzando l'operatore di confronto uguaglianze predefinito. + Oggetto che contiene gli elementi di entrambe le sequenze di input, tranne i duplicati. + Una sequenza i cui elementi distinti formano il primo insieme per l'operazione di unione. + Una sequenza i cui elementi distinti formano il secondo insieme per l'operazione di unione. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Produce l'unione insiemistica di due sequenze utilizzando un oggetto specificato. + Oggetto che contiene gli elementi di entrambe le sequenze di input, tranne i duplicati. + Una sequenza i cui elementi distinti formano il primo insieme per l'operazione di unione. + Una sequenza i cui elementi distinti formano il secondo insieme per l'operazione di unione. + Oggetto per confrontare i valori. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Filtra una sequenza di valori in base a un predicato. + Oggetto che contiene gli elementi dalla sequenza di input che soddisfano la condizione specificata da . + Oggetto da filtrare. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Filtra una sequenza di valori in base a un predicato.L'indice di ogni elemento viene utilizzato nella logica della funzione predicativa. + Oggetto che contiene gli elementi dalla sequenza di input che soddisfano la condizione specificata da . + Oggetto da filtrare. + Una funzione per testare ogni elemento per una condizione; il secondo parametro della funzione rappresenta l'indice dell'elemento della sequenza di origine. + Tipo degli elementi di . + Il parametro o è null. + + + Unisce due sequenze tramite la funzione del predicato specificata. + Oggetto che contiene gli elementi uniti delle due sequenze di input. + Prima sequenza da unire. + Seconda sequenza da unire. + Una funzione che specifica come unire gli elementi dalle due sequenze. + Tipo degli elementi della prima sequenza di input. + Tipo degli elementi della seconda sequenza di input. + Tipo degli elementi della sequenza risultante. + + o è null. + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netcore50/ja/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/ja/System.Linq.Queryable.xml new file mode 100644 index 0000000..725f96e --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/ja/System.Linq.Queryable.xml @@ -0,0 +1,1482 @@ + + + + System.Linq.Queryable + + + + 式ツリーを表し、式ツリーを書き換えた後で式ツリーを実行する機能を提供します。 + + + + クラスの新しいインスタンスを初期化します。 + + + 式ツリーを表し、式ツリーを書き換えた後で式ツリーを実行する機能を提供します。 + 式ツリーの実行結果の値のデータ型。 + + + + クラスの新しいインスタンスを初期化します。 + 新しいインスタンスに関連付ける式ツリー。 + + + + データ ソースとして表します。 + + + + クラスの新しいインスタンスを初期化します。 + + + + コレクションを データ ソースとして表します。 + コレクション内のデータの型。 + + + + クラスの新しいインスタンスを初期化し、それを コレクションに関連付けます。 + 新しいインスタンスに関連付けるコレクション。 + + + + クラスの新しいインスタンスを初期化し、インスタンスを式ツリーに関連付けます。 + 新しいインスタンスに関連付ける式ツリー。 + + + 関連付けられている コレクション、またはこれが null の場合は、関連付けられている式ツリーを データ ソースに対するクエリとして書き換え、それを実行することによって得られるコレクションを反復処理できる列挙子を返します。 + 関連付けられたデータ ソースの反復処理に使用できる列挙子。 + + + 関連付けられている コレクション、またはこれが null の場合は、関連付けられている式ツリーを データ ソースに対するクエリとして書き換え、それを実行することによって得られるコレクションを反復処理できる列挙子を返します。 + 関連付けられたデータ ソースの反復処理に使用できる列挙子。 + + + このインスタンスが表すコレクション内のデータの型を取得します。 + このインスタンスが表すコレクション内のデータの型。 + + + このインスタンスに関連付けられた、またはこのインスタンスを表す式ツリーを取得します。 + このインスタンスに関連付けられた、またはこのインスタンスを表す式ツリー。 + + + このインスタンスに関連付けられたクエリ プロバイダーを取得します。 + このインスタンスに関連付けられたクエリ プロバイダー。 + + + 新しい オブジェクトを構築し、それを、データの コレクションを表す指定した式ツリーに関連付けます。 + + に関連付けられた EnumerableQuery オブジェクト。 + 実行する式ツリー。 + + が表すコレクション内のデータの型。 + + + 新しい オブジェクトを構築し、それを、データの コレクションを表す指定した式ツリーに関連付けます。 + + に関連付ける オブジェクト。 + データの コレクションを表す式ツリー。 + + + + メソッドでクエリできない列挙可能なデータ ソースで、 メソッドの代わりに メソッドを呼び出すように式を書き換えた後で、式を実行します。 + + の実行結果の値。 + 実行する式ツリー。 + + が表すコレクション内のデータの型。 + + + + メソッドでクエリできない列挙可能なデータ ソースで、 メソッドの代わりに メソッドを呼び出すように式を書き換えた後で、式を実行します。 + + の実行結果の値。 + 実行する式ツリー。 + + + 列挙可能なコレクションのテキスト表現を返します。これが null の場合は、このインスタンスに関連付けられている式ツリーのテキスト表現を返します。 + 列挙可能なコレクションのテキスト表現。これが null の場合は、このインスタンスに関連付けられている式ツリーのテキスト表現。 + + + + を実装するデータ構造を照会するための一連の static (Visual Basic の場合は Shared) メソッドを提供します。 + + + シーケンスにアキュムレータ関数を適用します。 + 最終的なアキュムレータ値。 + 集計対象のシーケンス。 + 各要素に適用するアキュムレータ関数。 + + の要素の型。 + + または が null です。 + + に要素が含まれていません。 + + + シーケンスにアキュムレータ関数を適用します。指定されたシード値が最初のアキュムレータ値として使用されます。 + 最終的なアキュムレータ値。 + 集計対象のシーケンス。 + 最初のアキュムレータ値。 + 各要素に対して呼び出すアキュムレータ関数。 + + の要素の型。 + アキュムレータ値の型。 + + または が null です。 + + + シーケンスにアキュムレータ関数を適用します。指定したシード値は最初のアキュムレータ値として使用され、指定した関数は結果値の選択に使用されます。 + 変換された最終的なアキュムレータ値。 + 集計対象のシーケンス。 + 最初のアキュムレータ値。 + 各要素に対して呼び出すアキュムレータ関数。 + 最終的なアキュムレータ値を結果値に変換する関数。 + + の要素の型。 + アキュムレータ値の型。 + 結果の値の型。 + + 、または が null です。 + + + シーケンスのすべての要素が条件を満たしているかどうかを判断します。 + 指定された述語でソース シーケンスのすべての要素がテストに合格する場合は true。それ以外の場合は false。 + 条件を満たしているかどうかをテストする要素を含むシーケンス。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + シーケンスに要素が含まれているかどうかを判断します。 + ソース シーケンスに要素が含まれている場合は true。それ以外の場合は false。 + 空かどうかを確認するシーケンス。 + + の要素の型。 + + は null なので、 + + + シーケンスの任意の要素が条件を満たしているかどうかを判断します。 + 指定された述語でソース シーケンスの要素がテストに合格する場合は true。それ以外の場合は false。 + 条件を満たしているかどうかをテストする要素を含むシーケンス。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + ジェネリックの をジェネリックの に変換します。 + 入力シーケンスを表す + 変換するシーケンス。 + + の要素の型。 + + は null なので、 + + + + に変換します。 + 入力シーケンスを表す + 変換するシーケンス。 + + に対して を実装していません。 + + は null なので、 + + + + 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる 値のシーケンス。 + + は null なので、 + + に要素が含まれていません。 + + + + 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる 値のシーケンス。 + + は null なので、 + + に要素が含まれていません。 + + + + 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる 値のシーケンス。 + + は null なので、 + + に要素が含まれていません。 + + + + 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる 値のシーケンス。 + + は null なので、 + + に要素が含まれていません。 + + + null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。ソース シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。ソース シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。ソース シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。ソース シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。ソース シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + + 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる 値のシーケンス。 + + は null なので、 + + に要素が含まれていません。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値の計算に使用される値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + に要素が含まれていません。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + に要素が含まれていません。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + に要素が含まれていません。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + に要素が含まれていません。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + に要素が含まれていません。 + + + + の要素を、指定した型に変換します。 + 指定した型に変換されたソース シーケンスの各要素が格納されている + 変換する要素が格納されている 。 + + の要素の変換後の型。 + + は null なので、 + シーケンスの要素を 型にキャストできません。 + + + 2 つのシーケンスを連結します。 + 2 つの入力シーケンスの連結された要素が格納されている + 連結する最初のシーケンス。 + 最初のシーケンスに連結するシーケンス。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 既定の等値比較子を使用して、指定した要素がシーケンスに含まれているかどうかを判断します。 + 指定した値を持つ要素が入力シーケンスに含まれている場合は true。それ以外の場合は false。 + + の検索対象となる 。 + シーケンス内で検索するオブジェクト。 + + の要素の型。 + + は null なので、 + + + 指定した を使用して、指定した要素がシーケンスに含まれているかどうかを判断します。 + 指定した値を持つ要素が入力シーケンスに含まれている場合は true。それ以外の場合は false。 + + の検索対象となる 。 + シーケンス内で検索するオブジェクト。 + 値を比較する 。 + + の要素の型。 + + は null なので、 + + + シーケンス内の要素数を返します。 + 入力シーケンス内の要素数。 + カウントする要素が格納されている 。 + + の要素の型。 + + は null なので、 + + 内の要素数が を超えています。 + + + 指定したシーケンス内の、条件を満たす要素の数を返します。 + 述語関数の条件を満たす、シーケンス内の要素数。 + カウントする要素が格納されている 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + 内の要素数が を超えています。 + + + 指定したシーケンスの要素を返します。シーケンスが空の場合はシングルトン コレクションにある型パラメーターの既定値を返します。 + + が空の場合は default() が格納されている 。それ以外の場合は + 空の場合に、既定値を返す 。 + + の要素の型。 + + は null なので、 + + + 指定されたシーケンスの要素を返します。シーケンスが空の場合はシングルトン コレクションにある型パラメーターの既定値を返します。 + + が空の場合は が格納されている 。それ以外の場合は + 空の場合に、指定された値を返す 。 + シーケンスが空の場合に返す値。 + + の要素の型。 + + は null なので、 + + + 既定の等値比較子を使用して値を比較することにより、シーケンスから一意の要素を返します。 + + の一意の要素が格納される + 重複を削除する対象の 。 + + の要素の型。 + + は null なので、 + + + 指定された を使用して値を比較することにより、シーケンスから一意の要素を返します。 + + の一意の要素が格納される + 重複を削除する対象の 。 + 値を比較する 。 + + の要素の型。 + + または が null です。 + + + シーケンス内の指定されたインデックス位置にある要素を返します。 + + 内の指定した位置にある要素。 + 返される要素が含まれる 。 + 取得する要素の、0 から始まるインデックス。 + + の要素の型。 + + は null なので、 + + が 0 未満です。 + + + シーケンス内の指定されたインデックス位置にある要素を返します。インデックスが範囲外の場合は既定値を返します。 + + の範囲外の場合は default()。それ以外の場合は で指定された位置にある要素。 + 返される要素が含まれる 。 + 取得する要素の、0 から始まるインデックス。 + + の要素の型。 + + は null なので、 + + + 既定の等値比較子を使用して値を比較することにより、2 つのシーケンスの差集合を生成します。 + 2 つのシーケンスの差集合が格納されている + + には含まれていないが、返される要素を含む 。 + 最初のシーケンスにも含まれているが、返されたシーケンスには出現しない要素を含む 。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 指定された を使用して値を比較することにより、2 つのシーケンスの差集合を生成します。 + 2 つのシーケンスの差集合が格納されている + + には含まれていないが、返される要素を含む 。 + 最初のシーケンスにも含まれているが、返されたシーケンスには出現しない要素を含む 。 + 値を比較する 。 + 入力シーケンスの要素の型。 + + または が null です。 + + + シーケンスの最初の要素を返します。 + + の最初の要素。 + 最初の要素を返す 。 + + の要素の型。 + + は null なので、 + ソース シーケンスが空です。 + + + 指定された条件を満たす、シーケンスの最初の要素を返します。 + + でテストに合格する、 の最初の要素。 + 返される要素が含まれる 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + の条件を満たす要素がありません。またはソース シーケンスが空です。 + + + シーケンスの最初の要素を返します。シーケンスに要素が含まれていない場合は既定値を返します。 + + が空の場合は default()。それ以外の場合は の最初の要素。 + 最初の要素を返す 。 + + の要素の型。 + + は null なので、 + + + 指定された条件を満たす、シーケンスの最初の要素を返します。このような要素が見つからない場合は既定値を返します。 + + が空の場合または で指定されたテストに合格する要素がない場合は default()。それ以外の場合は、 で指定されたテストに合格する、 の最初の要素。 + 返される要素が含まれる 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化します。 + C# では IQueryable<IGrouping<TKey, TSource>>、Visual Basic では IQueryable(Of IGrouping(Of TKey, TSource))。ここでは、各 オブジェクトに、オブジェクトのシーケンス、およびキーが格納されています。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、指定された比較子を使用してキーを比較します。 + C# では IQueryable<IGrouping<TKey, TSource>>、Visual Basic では IQueryable(Of IGrouping(Of TKey, TSource))。ここでは、各 オブジェクトに、オブジェクトのシーケンス、およびキーが格納されています。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + キーを比較する 。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + 、または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、指定された関数を使用して各グループの要素を射影します。 + C# では IQueryable<IGrouping<TKey, TElement>>、Visual Basic では IQueryable(Of IGrouping(Of TKey, TElement))。ここでは、各 に、 型のオブジェクトのシーケンス、およびキーが格納されています。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + ソースの各要素を の要素に割り当てる関数。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + の要素の型。 + + 、または が null です。 + + + 指定された関数を使用して、シーケンスの要素をグループ化し、各グループの要素を射影します。キー値の比較には、指定された比較子を使用します。 + C# では IQueryable<IGrouping<TKey, TElement>>、Visual Basic では IQueryable(Of IGrouping(Of TKey, TElement))。ここでは、各 に、 型のオブジェクトのシーケンス、およびキーが格納されています。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + ソースの各要素を の要素に割り当てる関数。 + キーを比較する 。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + の要素の型。 + + 、または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、各グループとそのキーから結果値を作成します。各グループの要素は、指定された関数を使用して射影されます。 + + の型引数を持つ T:System.Linq.IQueryable`1。各要素は、グループとそのキーの射影を表します。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + ソースの各要素を の要素に割り当てる関数。 + 各グループから結果値を作成する関数。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + の要素の型。 + + によって返される結果値の型。 + + 、または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、各グループとそのキーから結果値を作成します。キーの比較には、指定された比較子を使用し、各グループの要素の射影には、指定された関数を使用します。 + + の型引数を持つ T:System.Linq.IQueryable`1。各要素は、グループとそのキーの射影を表します。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + ソースの各要素を の要素に割り当てる関数。 + 各グループから結果値を作成する関数。 + キーを比較する 。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + の要素の型。 + + によって返される結果値の型。 + + 、または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、各グループとそのキーから結果値を作成します。 + + の型引数を持つ T:System.Linq.IQueryable`1。各要素は、グループとそのキーの射影を表します。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + 各グループから結果値を作成する関数。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + によって返される結果値の型。 + + 、または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、各グループとそのキーから結果値を作成します。キーの比較には、指定された比較子を使用します。 + + の型引数を持つ T:System.Linq.IQueryable`1。各要素は、グループとそのキーの射影を表します。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + 各グループから結果値を作成する関数。 + キーを比較する 。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + によって返される結果値の型。 + + 、または が null です。 + + + キーが等しいかどうかに基づいて 2 つのシーケンスの要素を相互に関連付け、その結果をグループ化します。キーの比較には既定の等値比較子が使用されます。 + 2 つのシーケンスに対してグループ化結合を実行して取得した 型の要素が格納されている + 結合する最初のシーケンス。 + 最初のシーケンスに結合するシーケンス。 + 最初のシーケンスの各要素から結合キーを抽出する関数。 + 2 番目のシーケンスの各要素から結合キーを抽出する関数。 + 最初のシーケンスの要素と、2 番目のシーケンスの一致する要素のコレクションから結果の要素を作成する関数。 + 最初のシーケンスの要素の型。 + 2 番目のシーケンスの要素の型。 + キー セレクター関数によって返されるキーの型。 + 結果の要素の型。 + + 、または が null です。 + + + キーが等しいかどうかに基づいて 2 つのシーケンスの要素を相互に関連付け、その結果をグループ化します。指定された を使用してキーを比較します。 + 2 つのシーケンスに対してグループ化結合を実行して取得した 型の要素が格納されている + 結合する最初のシーケンス。 + 最初のシーケンスに結合するシーケンス。 + 最初のシーケンスの各要素から結合キーを抽出する関数。 + 2 番目のシーケンスの各要素から結合キーを抽出する関数。 + 最初のシーケンスの要素と、2 番目のシーケンスの一致する要素のコレクションから結果の要素を作成する関数。 + キーをハッシュして比較する比較子。 + 最初のシーケンスの要素の型。 + 2 番目のシーケンスの要素の型。 + キー セレクター関数によって返されるキーの型。 + 結果の要素の型。 + + 、または が null です。 + + + 既定の等値比較子を使用して値を比較することにより、2 つのシーケンスの積集合を生成します。 + 2 つのシーケンスの積集合を含むシーケンス。 + + にも含まれる、返される一意の要素を含むシーケンス。 + 最初のシーケンスにも含まれる、返される一意の要素を含むシーケンス。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 指定された を使用して値を比較することにより、2 つのシーケンスの積集合を生成します。 + 2 つのシーケンスの積集合を含む + + にも含まれる、返される一意の要素を含む 。 + 最初のシーケンスにも含まれる、返される一意の要素を含む 。 + 値を比較する 。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 一致するキーに基づいて 2 つのシーケンスの要素を相互に関連付けます。キーの比較には既定の等値比較子が使用されます。 + 2 つのシーケンスに対して内部結合を実行して取得した 型の要素が格納されている + 結合する最初のシーケンス。 + 最初のシーケンスに結合するシーケンス。 + 最初のシーケンスの各要素から結合キーを抽出する関数。 + 2 番目のシーケンスの各要素から結合キーを抽出する関数。 + 一致する 2 つの要素から結果の要素を作成する関数。 + 最初のシーケンスの要素の型。 + 2 番目のシーケンスの要素の型。 + キー セレクター関数によって返されるキーの型。 + 結果の要素の型。 + + 、または が null です。 + + + 一致するキーに基づいて 2 つのシーケンスの要素を相互に関連付けます。指定された を使用してキーを比較します。 + 2 つのシーケンスに対して内部結合を実行して取得した 型の要素が格納されている + 結合する最初のシーケンス。 + 最初のシーケンスに結合するシーケンス。 + 最初のシーケンスの各要素から結合キーを抽出する関数。 + 2 番目のシーケンスの各要素から結合キーを抽出する関数。 + 一致する 2 つの要素から結果の要素を作成する関数。 + キーをハッシュして比較する 。 + 最初のシーケンスの要素の型。 + 2 番目のシーケンスの要素の型。 + キー セレクター関数によって返されるキーの型。 + 結果の要素の型。 + + 、または が null です。 + + + シーケンスの最後の要素を返します。 + + の最後の位置にある値。 + 最後の要素を返す 。 + + の要素の型。 + + は null なので、 + ソース シーケンスが空です。 + + + 指定された条件を満たす、シーケンスの最後の要素を返します。 + + で指定されたテストに合格する、 の最後の要素。 + 返される要素が含まれる 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + の条件を満たす要素がありません。またはソース シーケンスが空です。 + + + シーケンスの最後の要素を返します。シーケンスに要素が含まれていない場合は既定値を返します。 + + が空の場合は default ()。それ以外の場合は の最後の要素。 + 最後の要素を返す 。 + + の要素の型。 + + は null なので、 + + + 条件を満たす、シーケンスの最後の要素を返します。このような要素が見つからない場合は既定値を返します。 + + が空の場合、または述語関数でテストに合格する要素がない場合は default ()。それ以外の場合は、述語関数でテストに合格する、 の最後の要素。 + 返される要素が含まれる 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + シーケンス内の要素の合計数を表す を返します。 + + にある要素の数。 + カウントする要素が格納されている 。 + + の要素の型。 + + は null なので、 + 要素数が を超えています。 + + + 条件を満たす、シーケンス内の要素の数を表す を返します。 + 述語関数の条件を満たす、 の要素数。 + カウントする要素が格納されている 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + 一致する要素数が を超えています。 + + + ジェネリックの にある最大値を返します。 + シーケンスの最大値。 + 最大値を確認する対象となる値のシーケンス。 + + の要素の型。 + + は null なので、 + + + ジェネリックの の各要素に対して射影関数を呼び出し、結果の最大値を返します。 + シーケンスの最大値。 + 最大値を確認する対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + で表された関数によって返される値の型。 + + または が null です。 + + + ジェネリックの にある最小値を返します。 + シーケンスの最小値。 + 最小値を確認する対象となる値のシーケンス。 + + の要素の型。 + + は null なので、 + + + ジェネリックの の各要素に対して射影関数を呼び出し、結果の最小値を返します。 + シーケンスの最小値。 + 最小値を確認する対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + で表された関数によって返される値の型。 + + または が null です。 + + + 指定された型に基づいて の要素をフィルター処理します。 + + 型を持つ、 の要素を含むコレクション。 + フィルター処理する要素を含む 。 + シーケンスの要素をフィルター処理する型。 + + は null なので、 + + + シーケンスの要素をキーに従って昇順に並べ替えます。 + 要素がキーに従って並べ替えられている + 順序付ける値のシーケンス。 + 要素からキーを抽出する関数。 + + の要素の型。 + + で表される関数によって返されるキーの型。 + + または が null です。 + + + 指定された比較子を使用してシーケンスの要素を昇順に並べ替えます。 + 要素がキーに従って並べ替えられている + 順序付ける値のシーケンス。 + 要素からキーを抽出する関数。 + キーを比較する 。 + + の要素の型。 + + で表される関数によって返されるキーの型。 + + 、または が null です。 + + + シーケンスの要素をキーに従って降順に並べ替えます。 + 要素がキーに従って降順に並べ替えられている + 順序付ける値のシーケンス。 + 要素からキーを抽出する関数。 + + の要素の型。 + + で表される関数によって返されるキーの型。 + + または が null です。 + + + 指定された比較子を使用してシーケンスの要素を降順に並べ替えます。 + 要素がキーに従って降順に並べ替えられている + 順序付ける値のシーケンス。 + 要素からキーを抽出する関数。 + キーを比較する 。 + + の要素の型。 + + で表される関数によって返されるキーの型。 + + 、または が null です。 + + + シーケンスの要素の順序を反転させます。 + 要素が入力シーケンスの要素に逆順で対応している + 反転させる値のシーケンス。 + + の要素の型。 + + は null なので、 + + + シーケンスの各要素を新しいフォームに射影します。 + + の各要素に対して射影関数を呼び出した結果として得られる要素を含む + 射影する値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + で表された関数によって返される値の型。 + + または が null です。 + + + 要素のインデックスを組み込むことにより、シーケンスの各要素を新しいフォームに射影します。 + + の各要素に対して射影関数を呼び出した結果として得られる要素を含む + 射影する値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + で表された関数によって返される値の型。 + + または が null です。 + + + シーケンスの各要素を に射影し、その各要素で結果のセレクター関数を呼び出します。各中間シーケンスの結果として得られる値は、1 つの 1 次元シーケンスに結合され、返されます。 + + の各要素で一対多の射影関数 を呼び出し、こうしたシーケンスの各要素とそれに対応する 要素を結果の要素に割り当てた結果として得られる要素を含む + 射影する値のシーケンス。 + 入力シーケンスの各要素に適用する射影関数。 + 各中間シーケンスの各要素に適用する射影関数。 + + の要素の型。 + + で表される関数によって収集される中間要素の型。 + 結果のシーケンスの要素の型。 + + 、または が null です。 + + + シーケンスの各要素を に射影し、結果のシーケンスを 1 つのシーケンスに結合します。 + 入力シーケンスの各要素で一対多の射影関数を呼び出した結果として得られる要素を含む + 射影する値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + で表される関数によって返されるシーケンスの要素の型。 + + または が null です。 + + + シーケンスの各要素を、それを生成したソース要素のインデックスを組み込む に射影します。結果のセレクター関数は、各中間シーケンスの各要素に対して呼び出されます。結果値は 1 つの 1 次元シーケンスに結合され、返されます。 + + の各要素で一対多の射影関数 を呼び出し、こうしたシーケンスの各要素とそれに対応する 要素を結果の要素に割り当てた結果として得られる要素を含む + 射影する値のシーケンス。 + 入力シーケンスの各要素に適用する射影関数。この関数の 2 つ目のパラメーターは、ソース要素のインデックスを表します。 + 各中間シーケンスの各要素に適用する射影関数。 + + の要素の型。 + + で表される関数によって収集される中間要素の型。 + 結果のシーケンスの要素の型。 + + 、または が null です。 + + + シーケンスの各要素を に射影し、結果のシーケンスを 1 つのシーケンスに結合します。各ソース要素のインデックスは、その要素の射影されたフォームで使用されます。 + 入力シーケンスの各要素で一対多の射影関数を呼び出した結果として得られる要素を含む + 射影する値のシーケンス。 + 各要素に適用する射影関数。この関数の 2 つ目のパラメーターは、ソース要素のインデックスを表します。 + + の要素の型。 + + で表される関数によって返されるシーケンスの要素の型。 + + または が null です。 + + + 既定の等値比較子を使用して要素を比較することで、2 つのシーケンスが等しいかどうかを判断します。 + 2 つのソース シーケンスが同じ長さで、それらに対応する要素の比較が等しい場合は true。それ以外の場合は false。 + + の要素と比較する要素が含まれている 。 + 最初のシーケンスの要素と比較する要素が含まれている 。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 指定された を使用して要素を比較することで、2 つのシーケンスが等しいかどうかを判断します。 + 2 つのソース シーケンスが同じ長さで、それらに対応する要素の比較が等しい場合は true。それ以外の場合は false。 + + の要素と比較する要素が含まれている 。 + 最初のシーケンスの要素と比較する要素が含まれている 。 + 要素の比較に使用する 。 + 入力シーケンスの要素の型。 + + または が null です。 + + + シーケンスの唯一の要素を返します。シーケンス内の要素が 1 つだけではない場合は、例外をスローします。 + 入力シーケンスの 1 つの要素。 + 1 つの要素を返す 。 + + の要素の型。 + + は null なので、 + + には複数の要素があります。 + + + 指定された条件を満たす、シーケンスの唯一の要素を返します。そのような要素が複数存在する場合は、例外をスローします。 + + の条件を満たす、入力シーケンスの 1 つの要素。 + 1 つの要素を返す 。 + 要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + の条件を満たす要素がありません。または の条件を満たす要素が複数あります。またはソース シーケンスが空です。 + + + シーケンスの唯一の要素を返します。シーケンスが空の場合、既定値を返します。シーケンス内に要素が複数ある場合、このメソッドは例外をスローします。 + 入力シーケンスの 1 つの要素。シーケンスに要素が含まれない場合は default ()。 + 1 つの要素を返す 。 + + の要素の型。 + + は null なので、 + + には複数の要素があります。 + + + 指定された条件を満たす、シーケンスの唯一の要素を返します。そのような要素が存在しない場合、既定値を返します。複数の要素が条件を満たす場合、このメソッドは例外をスローします。 + + の条件を満たす、入力シーケンスの 1 つの要素。そのような要素が見つからない場合は default ()。 + 1 つの要素を返す 。 + 要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + の条件を満たす要素が複数あります。 + + + シーケンス内の指定された数の要素をバイパスし、残りの要素を返します。 + 入力シーケンスで指定されたインデックスの後に出現する要素を含む + 返される要素が含まれる 。 + 残りの要素を返す前にスキップする要素の数。 + + の要素の型。 + + は null なので、 + + + 指定された条件が満たされる限り、シーケンスの要素をバイパスした後、残りの要素を返します。 + + で指定されたテストに合格しない連続する最初の要素から の要素を含む + 返される要素が含まれる 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + 指定された条件が満たされる限り、シーケンスの要素をバイパスした後、残りの要素を返します。要素のインデックスは、述語関数のロジックで使用されます。 + + で指定されたテストに合格しない連続する最初の要素から の要素を含む + 返される要素が含まれる 。 + 各要素が条件に当てはまるかどうかをテストする関数。この関数の 2 つ目のパラメーターは、ソース要素のインデックスを表します。 + + の要素の型。 + + または が null です。 + + + + 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる 値のシーケンス。 + + は null なので、 + 合計が を超えています。 + + + + 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる 値のシーケンス。 + + は null なので、 + + + + 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる 値のシーケンス。 + + は null なので、 + 合計が を超えています。 + + + + 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる 値のシーケンス。 + + は null なので、 + 合計が を超えています。 + + + null 許容の 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる null 許容の 値のシーケンス。 + + は null なので、 + 合計が を超えています。 + + + null 許容の 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + null 許容の 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる null 許容の 値のシーケンス。 + + は null なので、 + 合計が を超えています。 + + + null 許容の 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる null 許容の 値のシーケンス。 + + は null なので、 + 合計が を超えています。 + + + null 許容の 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + + 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる 値のシーケンス。 + + は null なので、 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + 合計が を超えています。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + 合計が を超えています。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + 合計が を超えています。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + 合計が を超えています。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + 合計が を超えています。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + 合計が を超えています。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + シーケンスの先頭から、指定された数の連続する要素を返します。 + + の先頭から、指定された数の要素を含む + 要素を返すシーケンス。 + 返す要素数。 + + の要素の型。 + + は null なので、 + + + 指定された条件が満たされる限り、シーケンスから要素を返します。 + + で指定されたテストに合格しなくなった要素の前に出現する、入力シーケンスの要素を含む + 要素を返すシーケンス。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + 指定された条件が満たされる限り、シーケンスから要素を返します。要素のインデックスは、述語関数のロジックで使用されます。 + + で指定されたテストに合格しなくなった要素の前に出現する、入力シーケンスの要素を含む + 要素を返すシーケンス。 + 各要素が条件を満たしているかどうかをテストする関数。この関数の 2 つ目のパラメーターは、ソース シーケンスの要素のインデックスを表します。 + + の要素の型。 + + または が null です。 + + + キーに従って、シーケンス内の後続の要素を昇順で配置します。 + 要素がキーに従って並べ替えられている + 並べ替える要素を格納している 。 + 各要素からキーを抽出する関数。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + または が null です。 + + + 指定された比較子を使用して、シーケンス内の後続の要素を昇順で配置します。 + 要素がキーに従って並べ替えられている + 並べ替える要素を格納している 。 + 各要素からキーを抽出する関数。 + キーを比較する 。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + 、または が null です。 + + + キーに従って、シーケンス内の後続の要素を降順で配置します。 + 要素がキーに従って降順に並べ替えられている + 並べ替える要素を格納している 。 + 各要素からキーを抽出する関数。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + または が null です。 + + + 指定された比較子を使用して、シーケンス内の後続の要素を降順で配置します。 + 要素がキーに従って降順に並べ替えられているコレクション。 + 並べ替える要素を格納している 。 + 各要素からキーを抽出する関数。 + キーを比較する 。 + + の要素の型。 + + 関数によって返されるキーの型。 + + 、または が null です。 + + + 既定の等値比較子を使用して、2 つのシーケンスの和集合を生成します。 + 2 つの入力シーケンスの要素 (重複する要素は除く) を格納している + 和集合演算の最初のセットを形成する各要素を含むシーケンス。 + 和集合演算の 2 番目のセットを形成する各要素を含むシーケンス。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 指定された を使用して 2 つのシーケンスの和集合を生成します。 + 2 つの入力シーケンスの要素 (重複する要素は除く) を格納している + 和集合演算の最初のセットを形成する各要素を含むシーケンス。 + 和集合演算の 2 番目のセットを形成する各要素を含むシーケンス。 + 値を比較する 。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 述語に基づいて値のシーケンスをフィルター処理します。 + + で指定された条件を満たす、入力シーケンスの要素を含む + フィルター処理する 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + 述語に基づいて値のシーケンスをフィルター処理します。各要素のインデックスは、述語関数のロジックで使用されます。 + + で指定された条件を満たす、入力シーケンスの要素を含む + フィルター処理する 。 + 各要素が条件を満たしているかどうかをテストする関数。この関数の 2 つ目のパラメーターは、ソース シーケンスの要素のインデックスを表します。 + + の要素の型。 + + または が null です。 + + + 指定された述語関数を使用して 2 つのシーケンスをマージします。 + 2 つの入力シーケンスのマージされた要素が格納されている + マージする 1 番目のシーケンス。 + マージする 2 番目のシーケンス。 + 2 つのシーケンスの要素をマージする方法を指定する関数。 + 1 番目の入力シーケンスの要素の型。 + 2 番目の入力シーケンスの要素の型。 + 結果のシーケンスの要素の型。 + + または が null です。 + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netcore50/ko/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/ko/System.Linq.Queryable.xml new file mode 100644 index 0000000..2cb118a --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/ko/System.Linq.Queryable.xml @@ -0,0 +1,1466 @@ + + + + System.Linq.Queryable + + + + 식 트리를 나타내고 식 트리를 다시 작성한 후에 실행하는 기능을 제공합니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + + + 식 트리를 나타내고 식 트리를 다시 작성한 후에 실행하는 기능을 제공합니다. + 식 트리를 실행한 결과 값의 데이터 형식입니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + 새 인스턴스에 연결할 식 트리입니다. + + + + 데이터 소스로 을 나타냅니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + 데이터 소스로 컬렉션을 나타냅니다. + 컬렉션의 데이터 형식입니다. + + + + 클래스의 새 인스턴스를 초기화하고 컬렉션에 연결합니다. + 새 인스턴스에 연결할 컬렉션입니다. + + + + 클래스의 새 인스턴스를 초기화하고 인스턴스를 식 트리에 연결합니다. + 새 인스턴스에 연결할 식 트리입니다. + + + 연결된 컬렉션을 반복하거나, 값이 null인 경우 데이터 소스의 쿼리로 연결된 식 트리를 다시 작성 및 실행하여 얻은 결과 컬렉션을 반복할 수 있는 열거자를 반환합니다. + 연결된 데이터 소스를 반복하는 데 사용할 수 있는 열거자입니다. + + + 연결된 컬렉션을 반복하거나, 값이 null인 경우 데이터 소스의 쿼리로 연결된 식 트리를 다시 작성 및 실행하여 얻은 결과 컬렉션을 반복할 수 있는 열거자를 반환합니다. + 연결된 데이터 소스를 반복하는 데 사용할 수 있는 열거자입니다. + + + 이 인스턴스가 나타내는 컬렉션의 데이터 형식을 가져옵니다. + 이 인스턴스가 나타내는 컬렉션의 데이터 형식입니다. + + + 이 인스턴스에 연결되거나 이 인스턴스를 나타내는 식 트리를 가져옵니다. + 이 인스턴스에 연결되거나 이 인스턴스를 나타내는 식 트리입니다. + + + 이 인스턴스에 연결된 쿼리 공급자를 가져옵니다. + 이 인스턴스에 연결된 쿼리 공급자입니다. + + + 개체를 생성하고 데이터의 컬렉션을 나타내는 지정된 식 트리에 연결합니다. + + 에 연결된 EnumerableQuery 개체입니다. + 실행할 식 트리입니다. + + 이 나타내는 컬렉션의 데이터 형식입니다. + + + 개체를 생성하고 데이터의 컬렉션을 나타내는 지정된 식 트리에 연결합니다. + + 에 연결된 개체입니다. + 데이터의 컬렉션을 나타내는 식 트리입니다. + + + + 메서드를 통해 쿼리할 수 없는 열거 가능한 데이터 소스의 메서드 대신 메서드를 호출하려면 식을 다시 작성한 후에 실행합니다. + + 을 실행한 결과 값입니다. + 실행할 식 트리입니다. + + 이 나타내는 컬렉션의 데이터 형식입니다. + + + + 메서드를 통해 쿼리할 수 없는 열거 가능한 데이터 소스의 메서드 대신 메서드를 호출하려면 식을 다시 작성한 후에 실행합니다. + + 을 실행한 결과 값입니다. + 실행할 식 트리입니다. + + + 열거 가능 컬렉션 또는 null인 경우 이 인스턴스에 연결된 식 트리의 텍스트 표현을 반환합니다. + 열거 가능 컬렉션 또는 null인 경우 이 인스턴스에 연결된 식 트리의 텍스트 표현입니다. + + + + 을 구현하는 데이터 구조체를 쿼리하기 위한 static(Visual Basic의 경우 Shared) 메서드 집합을 제공합니다. + + + 시퀀스에 누적기 함수를 적용합니다. + 최종 누적기 값입니다. + 집계할 시퀀스입니다. + 각 요소에 적용할 누적기 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 에 요소가 없는 경우 + + + 시퀀스에 누적기 함수를 적용합니다.지정된 시드 값은 초기 누적기 값으로 사용됩니다. + 최종 누적기 값입니다. + 집계할 시퀀스입니다. + 초기 누적기 값입니다. + 각 요소에 대해 호출할 누적기 함수입니다. + + 요소의 형식입니다. + 누적기 값의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스에 누적기 함수를 적용합니다.지정된 시드 값은 초기 누적기 값으로 사용되고 지정된 함수는 결과 값을 선택하는 데 사용됩니다. + 변환된 최종 누적기 값입니다. + 집계할 시퀀스입니다. + 초기 누적기 값입니다. + 각 요소에 대해 호출할 누적기 함수입니다. + 최종 누적기 값을 결과 값으로 변환하는 함수입니다. + + 요소의 형식입니다. + 누적기 값의 형식입니다. + 결과 값의 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 모든 요소가 특정 조건에 맞는지 확인합니다. + 소스 시퀀스의 모든 요소가 지정된 조건자의 테스트를 통과하거나 시퀀스가 비어 있으면 true이고, 그렇지 않으면 false입니다. + 해당 요소를 조건에 대해 테스트할 시퀀스입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스에 요소가 하나라도 있는지 확인합니다. + 소스 시퀀스에 요소가 하나라도 있으면 true이고, 그렇지 않으면 false입니다. + 비어 있는지 확인할 시퀀스입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 시퀀스에 특정 조건에 맞는 요소가 있는지 확인합니다. + 지정된 조건자의 테스트를 통과하는 요소가 소스 시퀀스에 하나라도 있으면 true이고, 그렇지 않으면 false입니다. + 해당 요소를 조건에 대해 테스트할 시퀀스입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 제네릭 을 제네릭 로 변환합니다. + 입력 시퀀스를 나타내는 입니다. + 변환할 시퀀스입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + + 로 변환합니다. + 입력 시퀀스를 나타내는 입니다. + 변환할 시퀀스입니다. + + 가 일부 에 대해 을 구현하지 않는 경우 + + 가 null입니다. + + + + 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + 에 요소가 없는 경우 + + + + 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + 에 요소가 없는 경우 + + + + 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + 에 요소가 없는 경우 + + + + 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + 에 요소가 없는 경우 + + + nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 소스 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 소스 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 소스 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 소스 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 소스 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + + 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + 에 요소가 없는 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산하는 데 사용되는 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 에 요소가 없는 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 에 요소가 없는 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 에 요소가 없는 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 에 요소가 없는 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 에 요소가 없는 경우 + + + + 의 요소를 지정된 형식으로 변환합니다. + 지정된 형식으로 변환된 소스 시퀀스의 각 요소가 들어 있는 입니다. + 변환할 요소가 들어 있는 입니다. + + 의 요소를 변환할 형식입니다. + + 가 null입니다. + 시퀀스의 요소를 형식으로 캐스팅할 수 없는 경우 + + + 두 시퀀스를 연결합니다. + 두 입력 시퀀스의 연결된 요소가 들어 있는 입니다. + 연결할 첫 번째 시퀀스입니다. + 첫 번째 시퀀스에 연결할 시퀀스입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 기본 같음 비교자를 사용하여 시퀀스에 지정된 요소가 들어 있는지 확인합니다. + 입력 시퀀스에 지정된 값을 갖는 요소가 들어 있으면 true이고, 그렇지 않으면 false입니다. + + 을 찾을 입니다. + 시퀀스에서 찾을 개체입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 지정된 를 사용하여 시퀀스에 지정된 요소가 들어 있는지 확인합니다. + 입력 시퀀스에 지정된 값을 갖는 요소가 들어 있으면 true이고, 그렇지 않으면 false입니다. + + 을 찾을 입니다. + 시퀀스에서 찾을 개체입니다. + 값을 비교할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 시퀀스의 요소 수를 반환합니다. + 입력 시퀀스의 요소 수입니다. + 개수를 셀 요소가 들어 있는 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + 의 요소 수가 보다 큰 경우 + + + 지정된 시퀀스에서 특정 조건에 맞는 요소 수를 반환합니다. + 시퀀스에서 조건자 함수의 조건에 맞는 요소 수입니다. + 개수를 셀 요소가 들어 있는 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 의 요소 수가 보다 큰 경우 + + + 지정된 시퀀스의 요소를 반환하거나, 시퀀스가 비어 있으면 형식 매개 변수의 기본값을 반환합니다. + + 가 비어 있으면 default()가 들어 있는 이고, 그렇지 않으면 입니다. + 비어 있는 경우 기본값을 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 지정된 시퀀스의 요소를 반환하거나, 시퀀스가 비어 있으면 singleton 컬렉션의 지정된 값을 반환합니다. + + 가 비어 있으면 가 들어 있는 이고, 그렇지 않으면 입니다. + 비어 있는 경우 지정된 값을 반환할 입니다. + 시퀀스가 비어 있는 경우에 반환할 값입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 기본 같음 비교자로 값을 비교하여 시퀀스에서 고유 요소를 반환합니다. + + 의 고유 요소가 들어 있는 입니다. + 중복을 제거할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 지정된 로 값을 비교하여 시퀀스에서 고유 요소를 반환합니다. + + 의 고유 요소가 들어 있는 입니다. + 중복을 제거할 입니다. + 값을 비교할 입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스에서 지정된 인덱스의 요소를 반환합니다. + + 에서 지정된 위치의 요소입니다. + 요소를 반환할 입니다. + 검색할 요소의 인덱스(0부터 시작)입니다. + + 요소의 형식입니다. + + 가 null입니다. + + 가 0보다 작은 경우 + + + 시퀀스에서 지정된 인덱스의 요소를 반환하거나, 인덱스가 범위를 벗어나면 기본 값을 반환합니다. + + 의 범위를 벗어나면 default()이고, 그렇지 않으면 에서 지정된 위치에 있는 요소입니다. + 요소를 반환할 입니다. + 검색할 요소의 인덱스(0부터 시작)입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 기본 같음 비교자로 값을 비교하여 두 시퀀스의 차집합을 구합니다. + 두 시퀀스의 차집합이 들어 있는 입니다. + + 에 없는 해당 요소를 반환할 입니다. + 첫 번째 시퀀스에 해당 요소가 있는 경우 반환되는 시퀀스에서 해당 요소를 제외할 입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 로 값을 비교하여 두 시퀀스의 차집합을 구합니다. + 두 시퀀스의 차집합이 들어 있는 입니다. + + 에 없는 해당 요소를 반환할 입니다. + 첫 번째 시퀀스에 해당 요소가 있는 경우 반환되는 시퀀스에서 해당 요소를 제외할 입니다. + 값을 비교할 입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 첫 번째 요소를 반환합니다. + + 의 첫 번째 요소입니다. + 첫 번째 요소를 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + 소스 시퀀스가 비어 있는 경우 + + + 시퀀스에서 지정된 조건에 맞는 첫 번째 요소를 반환합니다. + + 에서 의 테스트를 통과하는 첫 번째 요소입니다. + 요소를 반환할 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 의 조건에 맞는 요소가 없는 경우또는소스 시퀀스가 비어 있는 경우 + + + 시퀀스의 첫 번째 요소를 반환하거나, 시퀀스에 요소가 없으면 기본값을 반환합니다. + + 가 비어 있으면 default()이고, 그렇지 않으면 의 첫 번째 요소입니다. + 첫 번째 요소를 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 시퀀스에서 지정된 조건에 맞는 첫 번째 요소를 반환하거나, 이러한 요소가 없으면 기본값을 반환합니다. + + 가 비어 있거나 에 지정된 테스트를 통과하는 요소가 없으면 default()이고, 그렇지 않으면 에서 에 지정된 테스트를 통과하는 첫 번째 요소입니다. + 요소를 반환할 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 키 선택기 함수에 따라 시퀀스의 요소를 그룹화합니다. + 개체에 개체 및 키의 시퀀스가 들어 있는 IQueryable<IGrouping<TKey, TSource>>(C#의 경우) 또는 IQueryable(Of IGrouping(Of TKey, TSource))(Visual Basic의 경우)입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 또는 가 null인 경우 + + + 지정된 키 선택기 함수에 따라 지정된 비교자로 키를 비교하여 시퀀스의 요소를 그룹화합니다. + 에 개체 및 키의 시퀀스가 들어 있는 IQueryable<IGrouping<TKey, TSource>>(C#의 경우) 또는 IQueryable(Of IGrouping(Of TKey, TSource))(Visual Basic의 경우)입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + , 또는 가 null인 경우 + + + 지정된 키 선택기 함수에 따라 시퀀스의 요소를 그룹화하고 지정된 함수를 사용하여 각 그룹의 요소를 투영합니다. + 형식 개체 및 키의 시퀀스가 들어 있는 IQueryable<IGrouping<TKey, TElement>>(C#의 경우) 또는 IQueryable(Of IGrouping(Of TKey, TElement))(Visual Basic의 경우)입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 각 소스 요소를 의 요소에 매핑하는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + 에 있는 요소의 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 요소를 그룹화하고 지정된 함수를 사용하여 각 그룹의 요소를 투영합니다.키 값은 지정된 비교자를 통해 비교됩니다. + 형식 개체 및 키의 시퀀스가 들어 있는 IQueryable<IGrouping<TKey, TElement>>(C#의 경우) 또는 IQueryable(Of IGrouping(Of TKey, TElement))(Visual Basic의 경우)입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 각 소스 요소를 의 요소에 매핑하는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + 에 있는 요소의 형식입니다. + + , , 또는 가 null인 경우 + + + 지정된 키 누적기 함수에 따라 시퀀스의 요소를 그룹화하고 각 그룹의 결과 값과 해당 키를 만듭니다.각 그룹의 요소는 지정된 함수를 통해 투영됩니다. + 형식 인수가 이고 각 요소가 그룹 및 해당 키에 대한 프로젝션을 나타내는 T:System.Linq.IQueryable`1입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 각 소스 요소를 의 요소에 매핑하는 함수입니다. + 각 그룹의 결과 값을 만드는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + 에 있는 요소의 형식입니다. + + 에서 반환하는 결과 값의 형식입니다. + + , , 또는 가 null인 경우 + + + 지정된 키 누적기 함수에 따라 시퀀스의 요소를 그룹화하고 각 그룹의 결과 값과 해당 키를 만듭니다.키는 지정된 비교자를 통해 비교되고 각 그룹의 요소는 지정된 함수를 통해 투영됩니다. + 형식 인수가 이고 각 요소가 그룹 및 해당 키에 대한 프로젝션을 나타내는 T:System.Linq.IQueryable`1입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 각 소스 요소를 의 요소에 매핑하는 함수입니다. + 각 그룹의 결과 값을 만드는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + 에 있는 요소의 형식입니다. + + 에서 반환하는 결과 값의 형식입니다. + + , , , 또는 가 null인 경우 + + + 지정된 키 누적기 함수에 따라 시퀀스의 요소를 그룹화하고 각 그룹의 결과 값과 해당 키를 만듭니다. + 형식 인수가 이고 각 요소가 그룹 및 해당 키에 대한 프로젝션을 나타내는 T:System.Linq.IQueryable`1입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 각 그룹의 결과 값을 만드는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 에서 반환하는 결과 값의 형식입니다. + + , 또는 가 null인 경우 + + + 지정된 키 누적기 함수에 따라 시퀀스의 요소를 그룹화하고 각 그룹의 결과 값과 해당 키를 만듭니다.키는 지정된 비교자를 통해 비교됩니다. + 형식 인수가 이고 각 요소가 그룹 및 해당 키에 대한 프로젝션을 나타내는 T:System.Linq.IQueryable`1입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 각 그룹의 결과 값을 만드는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 에서 반환하는 결과 값의 형식입니다. + + , , 또는 가 null인 경우 + + + 키가 같은지 여부에 따라 두 시퀀스의 요소를 연관시키고 결과를 그룹화합니다.기본 같음 비교자를 사용하여 키를 비교합니다. + 두 시퀀스에 대해 그룹화 조인을 수행하여 가져온 형식 요소가 들어 있는 입니다. + 조인할 첫 번째 시퀀스입니다. + 첫 번째 시퀀스에 조인할 시퀀스입니다. + 첫 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 두 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 첫 번째 시퀀스의 요소와 두 번째 시퀀스의 일치하는 요소 컬렉션을 통해 결과 요소를 만들 함수입니다. + 첫 번째 시퀀스 요소의 형식입니다. + 두 번째 시퀀스 요소의 형식입니다. + 키 선택기 함수에서 반환하는 키의 형식입니다. + 결과 요소의 형식입니다. + + , , , 또는 가 null인 경우 + + + 키가 같은지 여부에 따라 두 시퀀스의 요소를 연관시키고 결과를 그룹화합니다.지정된 를 사용하여 키를 비교합니다. + 두 시퀀스에 대해 그룹화 조인을 수행하여 가져온 형식 요소가 들어 있는 입니다. + 조인할 첫 번째 시퀀스입니다. + 첫 번째 시퀀스에 조인할 시퀀스입니다. + 첫 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 두 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 첫 번째 시퀀스의 요소와 두 번째 시퀀스의 일치하는 요소 컬렉션을 통해 결과 요소를 만들 함수입니다. + 키를 해시하여 비교할 비교자입니다. + 첫 번째 시퀀스 요소의 형식입니다. + 두 번째 시퀀스 요소의 형식입니다. + 키 선택기 함수에서 반환하는 키의 형식입니다. + 결과 요소의 형식입니다. + + , , , 또는 가 null인 경우 + + + 기본 같음 비교자로 값을 비교하여 두 시퀀스의 교집합을 구합니다. + 두 시퀀스의 교집합이 들어 있는 시퀀스입니다. + + 에도 있는 고유 요소가 반환되는 시퀀스입니다. + 첫 번째 시퀀스에도 있는 고유 요소가 반환되는 시퀀스입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 로 값을 비교하여 두 시퀀스의 교집합을 구합니다. + 두 시퀀스의 교집합이 들어 있는 입니다. + + 에도 있는 고유 요소가 반환되는 입니다. + 첫 번째 시퀀스에도 있는 고유 요소가 반환되는 입니다. + 값을 비교할 입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 일치하는 키를 기준으로 두 시퀀스의 요소를 연관시킵니다.기본 같음 비교자를 사용하여 키를 비교합니다. + 두 시퀀스에 대해 내부 조인을 수행하여 가져온 형식 요소가 들어 있는 입니다. + 조인할 첫 번째 시퀀스입니다. + 첫 번째 시퀀스에 조인할 시퀀스입니다. + 첫 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 두 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 일치하는 두 요소를 통해 결과 요소를 만들 함수입니다. + 첫 번째 시퀀스 요소의 형식입니다. + 두 번째 시퀀스 요소의 형식입니다. + 키 선택기 함수에서 반환하는 키의 형식입니다. + 결과 요소의 형식입니다. + + , , , 또는 가 null인 경우 + + + 일치하는 키를 기준으로 두 시퀀스의 요소를 연관시킵니다.지정된 를 사용하여 키를 비교합니다. + 두 시퀀스에 대해 내부 조인을 수행하여 가져온 형식 요소가 들어 있는 입니다. + 조인할 첫 번째 시퀀스입니다. + 첫 번째 시퀀스에 조인할 시퀀스입니다. + 첫 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 두 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 일치하는 두 요소를 통해 결과 요소를 만들 함수입니다. + 키를 해시하여 비교할 입니다. + 첫 번째 시퀀스 요소의 형식입니다. + 두 번째 시퀀스 요소의 형식입니다. + 키 선택기 함수에서 반환하는 키의 형식입니다. + 결과 요소의 형식입니다. + + , , , 또는 가 null인 경우 + + + 시퀀스의 마지막 요소를 반환합니다. + + 에서 마지막 위치의 값입니다. + 마지막 요소를 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + 소스 시퀀스가 비어 있는 경우 + + + 시퀀스에서 지정된 조건에 맞는 마지막 요소를 반환합니다. + + 에서 에 지정된 테스트를 통과하는 마지막 요소입니다. + 요소를 반환할 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 의 조건에 맞는 요소가 없는 경우또는소스 시퀀스가 비어 있는 경우 + + + 시퀀스의 마지막 요소를 반환하거나, 시퀀스에 요소가 없으면 기본값을 반환합니다. + + 가 비어 있으면 default()이고, 그렇지 않으면 의 마지막 요소입니다. + 마지막 요소를 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 시퀀스에서 특정 조건에 맞는 마지막 요소를 반환하거나, 이러한 요소가 없으면 기본값을 반환합니다. + + 가 비어 있거나 조건자 함수의 테스트를 통과하는 요소가 없으면 default()이고, 그렇지 않으면 에서 조건자 함수의 테스트를 통과하는 마지막 요소입니다. + 요소를 반환할 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 총 요소 수를 나타내는 를 반환합니다. + + 의 요소 수입니다. + 개수를 셀 요소가 들어 있는 입니다. + + 요소의 형식입니다. + + 가 null입니다. + 요소 수가 를 초과하는 경우 + + + 시퀀스에서 특정 조건에 맞는 요소 수를 나타내는 를 반환합니다. + + 에서 조건자 함수의 조건에 맞는 요소 수입니다. + 개수를 셀 요소가 들어 있는 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 일치하는 요소 수가 를 초과하는 경우 + + + 제네릭 의 최대값을 반환합니다. + 시퀀스의 최대값입니다. + 최대값을 확인할 값의 시퀀스입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 제네릭 의 각 요소에 대해 프로젝션 함수를 호출하고 최대 결과 값을 반환합니다. + 시퀀스의 최대값입니다. + 최대값을 확인할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 값의 형식입니다. + + 또는 가 null인 경우 + + + 제네릭 의 최소값을 반환합니다. + 시퀀스의 최소값입니다. + 최소값을 확인할 값의 시퀀스입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 제네릭 의 각 요소에 대해 프로젝션 함수를 호출하고 최소 결과 값을 반환합니다. + 시퀀스의 최소값입니다. + 최소값을 확인할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 값의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 형식에 따라 의 요소를 필터링합니다. + 형식이 의 요소가 들어 있는 컬렉션입니다. + 요소를 필터링할 입니다. + 시퀀스의 요소를 필터링할 형식입니다. + + 가 null입니다. + + + 시퀀스의 요소를 키에 따라 오름차순으로 정렬합니다. + 요소가 키에 따라 정렬된 입니다. + 정렬할 값의 시퀀스입니다. + 요소에서 키를 추출하는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 또는 가 null인 경우 + + + 지정된 비교자를 사용하여 시퀀스의 요소를 오름차순으로 정렬합니다. + 요소가 키에 따라 정렬된 입니다. + 정렬할 값의 시퀀스입니다. + 요소에서 키를 추출하는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 요소를 키에 따라 내림차순으로 정렬합니다. + 요소가 키에 따라 내림차순으로 정렬된 입니다. + 정렬할 값의 시퀀스입니다. + 요소에서 키를 추출하는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 또는 가 null인 경우 + + + 지정된 비교자를 사용하여 시퀀스의 요소를 내림차순으로 정렬합니다. + 요소가 키에 따라 내림차순으로 정렬된 입니다. + 정렬할 값의 시퀀스입니다. + 요소에서 키를 추출하는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 요소 순서를 반전합니다. + 입력 시퀀스의 요소 순서를 뒤집은 입니다. + 반전할 값의 시퀀스입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 시퀀스의 각 요소를 새 폼에 투영합니다. + 해당 요소가 의 각 요소에 대해 프로젝션 함수를 호출한 결과인 입니다. + 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 값의 형식입니다. + + 또는 가 null인 경우 + + + 요소의 인덱스를 통합하여 시퀀스의 각 요소를 새 폼에 투영합니다. + 해당 요소가 의 각 요소에 대해 프로젝션 함수를 호출한 결과인 입니다. + 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 값의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 각 요소를 에 투영하고 각 해당 요소에 대해 결과 선택기 함수를 호출합니다.각 중간 시퀀스의 결과 값을 1차원 단일 시퀀스로 결합하여 반환합니다. + 해당 요소가 의 각 요소에 대해 일대다 프로젝션 함수 를 호출한 다음 이러한 시퀀스 요소와 해당 요소를 각각 결과 요소에 매핑한 결과인 입니다. + 계산할 값의 시퀀스입니다. + 입력 시퀀스의 각 요소에 적용할 프로젝션 함수입니다. + 각 중간 시퀀스의 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 가 나타내는 함수가 수집한 중간 요소의 형식입니다. + 결과 시퀀스 요소의 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 각 요소를 에 투영하고 결과 시퀀스를 단일 시퀀스로 결합합니다. + 해당 요소가 입력 시퀀스의 각 요소에 대해 일대다 프로젝션 함수를 호출한 결과인 입니다. + 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 가 나타내는 함수에서 반환되는 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 각 요소를 해당 소스 요소의 인덱스를 통합하는 에 투영합니다.각 중간 시퀀스의 각 요소에 대해 결과 선택기 함수를 호출하고 결과 값을 1차원 단일 시퀀스로 결합하여 반환합니다. + 해당 요소가 의 각 요소에 대해 일대다 프로젝션 함수 를 호출한 다음 이러한 시퀀스 요소와 해당 요소를 각각 결과 요소에 매핑한 결과인 입니다. + 계산할 값의 시퀀스입니다. + 입력 시퀀스의 각 요소에 적용할 프로젝션 함수이며, 이 함수의 두 번째 매개 변수는 소스 요소의 인덱스를 나타냅니다. + 각 중간 시퀀스의 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 가 나타내는 함수가 수집한 중간 요소의 형식입니다. + 결과 시퀀스 요소의 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 각 요소를 에 투영하고 결과 시퀀스를 단일 시퀀스로 결합합니다.각 소스 요소의 인덱스는 해당 요소의 투영된 폼에 사용됩니다. + 해당 요소가 입력 시퀀스의 각 요소에 대해 일대다 프로젝션 함수를 호출한 결과인 입니다. + 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수이며, 이 함수의 두 번째 매개 변수는 소스 요소의 인덱스를 나타냅니다. + + 요소의 형식입니다. + + 가 나타내는 함수에서 반환되는 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 기본 같음 비교자를 통해 요소를 비교하여 두 시퀀스가 서로 같은지 확인합니다. + 두 소스 시퀀스의 길이가 같고 해당 요소가 같은 것으로 비교되면 true이고, 그렇지 않으면 false입니다. + 해당 요소를 의 요소와 비교할 입니다. + 해당 요소를 첫 번째 시퀀스의 요소와 비교할 입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 를 통해 요소를 비교하여 두 시퀀스가 서로 같은지 확인합니다. + 두 소스 시퀀스의 길이가 같고 해당 요소가 같은 것으로 비교되면 true이고, 그렇지 않으면 false입니다. + 해당 요소를 의 요소와 비교할 입니다. + 해당 요소를 첫 번째 시퀀스의 요소와 비교할 입니다. + 요소를 비교하는 데 사용할 입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 유일한 요소를 반환하고, 시퀀스에 요소가 정확히 하나 들어 있지 않으면 예외를 throw합니다. + 입력 시퀀스의 단일 요소입니다. + 단일 요소를 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + 에 둘 이상의 요소가 있는 경우 + + + 시퀀스에서 지정된 조건에 맞는 유일한 요소를 반환하고, 이러한 요소가 둘 이상 있으면 예외를 throw합니다. + 입력 시퀀스에서 의 조건에 맞는 단일 요소입니다. + 단일 요소를 반환할 입니다. + 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 의 조건에 맞는 요소가 없는 경우또는의 조건에 맞는 요소가 둘 이상인 경우또는소스 시퀀스가 비어 있는 경우 + + + 시퀀스의 유일한 요소를 반환하거나 시퀀스가 비어 있으면 기본값을 반환합니다. 시퀀스에 요소가 둘 이상 있으면 예외를 throw합니다. + 입력 시퀀스의 단일 요소이거나, 시퀀스에 요소가 없으면 default()입니다. + 단일 요소를 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + 에 둘 이상의 요소가 있는 경우 + + + 시퀀스에서 지정된 조건에 맞는 유일한 요소를 반환하거나 이러한 요소가 없으면 기본값을 반환합니다. 조건에 맞는 요소가 둘 이상 있으면 예외를 throw합니다. + 입력 시퀀스에서 의 조건에 맞는 단일 요소를 반환하거나, 이러한 요소가 없으면 default()를 반환합니다. + 단일 요소를 반환할 입니다. + 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 의 조건에 맞는 요소가 둘 이상인 경우 + + + 시퀀스에서 지정된 수의 요소를 건너뛴 다음 나머지 요소를 반환합니다. + 입력 시퀀스에서 지정된 인덱스 뒤에 나오는 요소가 들어 있는 입니다. + 요소를 반환할 입니다. + 나머지 요소를 반환하기 전에 건너뛸 요소 수입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 지정된 조건이 true이면 시퀀스에 있는 요소를 무시하고 나머지 요소를 반환합니다. + + 에서 에 지정된 테스트를 통과하지 않는 급수의 첫 요소부터 시작되는 요소가 들어 있는 입니다. + 요소를 반환할 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 조건이 true이면 시퀀스에 있는 요소를 무시하고 나머지 요소를 반환합니다.조건자 함수의 논리에 요소의 인덱스가 사용됩니다. + + 에서 에 지정된 테스트를 통과하지 않는 급수의 첫 요소부터 시작되는 요소가 들어 있는 입니다. + 요소를 반환할 입니다. + 각 요소를 조건에 대해 테스트할 함수이며, 이 함수의 두 번째 매개 변수는 소스 요소의 인덱스를 나타냅니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + + 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 값의 시퀀스입니다. + + 가 null입니다. + 합이 보다 큰 경우 + + + + 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + + + 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 값의 시퀀스입니다. + + 가 null입니다. + 합이 보다 큰 경우 + + + + 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 값의 시퀀스입니다. + + 가 null입니다. + 합이 보다 큰 경우 + + + nullable 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + 합이 보다 큰 경우 + + + nullable 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + nullable 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + 합이 보다 큰 경우 + + + nullable 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + 합이 보다 큰 경우 + + + nullable 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + + 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 합이 보다 큰 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 합이 보다 큰 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 합이 보다 큰 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 합이 보다 큰 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 합이 보다 큰 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 합이 보다 큰 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스 시작 위치에서 지정된 수의 연속 요소를 반환합니다. + + 시작 위치에서 지정된 수의 요소가 들어 있는 입니다. + 요소가 반환되는 시퀀스입니다. + 반환할 요소 수입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 지정된 조건이 true인 동안 시퀀스에서 요소를 반환합니다. + 입력 시퀀스에서 요소가 에 지정된 테스트를 더 이상 통과하지 않는 위치보다 앞에 나오는 요소가 들어 있는 입니다. + 요소가 반환되는 시퀀스입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 조건이 true인 동안 시퀀스에서 요소를 반환합니다.조건자 함수의 논리에 요소의 인덱스가 사용됩니다. + 입력 시퀀스에서 요소가 에 지정된 테스트를 더 이상 통과하지 않는 위치보다 앞에 나오는 요소가 들어 있는 입니다. + 요소가 반환되는 시퀀스입니다. + 각 요소를 조건에 대해 테스트할 함수이며, 이 함수의 두 번째 매개 변수는 소스 시퀀스에 있는 요소의 인덱스를 나타냅니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 요소를 키에 따라 오름차순으로 다시 정렬합니다. + 요소가 키에 따라 정렬된 입니다. + 정렬할 요소가 들어 있는 입니다. + 각 요소에서 키를 추출하는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 요소를 지정된 비교자를 사용하여 오름차순으로 다시 정렬합니다. + 요소가 키에 따라 정렬된 입니다. + 정렬할 요소가 들어 있는 입니다. + 각 요소에서 키를 추출하는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 요소를 키에 따라 내림차순으로 다시 정렬합니다. + 요소가 키에 따라 내림차순으로 정렬된 입니다. + 정렬할 요소가 들어 있는 입니다. + 각 요소에서 키를 추출하는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 요소를 지정된 비교자를 사용하여 내림차순으로 다시 정렬합니다. + 요소가 키에 따라 내림차순으로 정렬된 컬렉션입니다. + 정렬할 요소가 들어 있는 입니다. + 각 요소에서 키를 추출하는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 함수가 반환하는 키 형식입니다. + + , 또는 가 null인 경우 + + + 기본 같음 비교자를 사용하여 두 시퀀스의 합집합을 구합니다. + 두 입력 시퀀스의 모든 요소가 들어 있는 이며, 중복 요소는 제외됩니다. + 해당 고유 요소가 합집합 연산의 첫 번째 집합을 이루는 시퀀스입니다. + 해당 고유 요소가 합집합 연산의 두 번째 집합을 이루는 시퀀스입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 를 사용하여 두 시퀀스의 합집합을 구합니다. + 두 입력 시퀀스의 모든 요소가 들어 있는 이며, 중복 요소는 제외됩니다. + 해당 고유 요소가 합집합 연산의 첫 번째 집합을 이루는 시퀀스입니다. + 해당 고유 요소가 합집합 연산의 두 번째 집합을 이루는 시퀀스입니다. + 값을 비교할 입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 조건자에 따라 값의 시퀀스를 필터링합니다. + 입력 시퀀스에서 에 지정된 조건에 맞는 요소가 들어 있는 입니다. + 필터링할 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 조건자에 따라 값의 시퀀스를 필터링합니다.조건자 함수의 논리에 각 요소의 인덱스가 사용됩니다. + 입력 시퀀스에서 에 지정된 조건에 맞는 요소가 들어 있는 입니다. + 필터링할 입니다. + 각 요소를 조건에 대해 테스트할 함수이며, 이 함수의 두 번째 매개 변수는 소스 시퀀스에 있는 요소의 인덱스를 나타냅니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 조건자 함수를 사용하여 두 시퀀스를 병합합니다. + 두 입력 시퀀스의 병합된 요소가 들어 있는 입니다. + 병합할 첫 번째 시퀀스입니다. + 병합할 두 번째 시퀀스입니다. + 두 시퀀스의 요소를 병합하는 방법을 지정하는 함수입니다. + 첫 번째 입력 시퀀스 요소의 형식입니다. + 두 번째 입력 시퀀스 요소의 형식입니다. + 결과 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netcore50/ru/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/ru/System.Linq.Queryable.xml new file mode 100644 index 0000000..b471d71 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/ru/System.Linq.Queryable.xml @@ -0,0 +1,1146 @@ + + + + System.Linq.Queryable + + + + Представляет дерево выражения и обеспечивает функциональность для выполнения дерева выражения после его перезаписи. + + + Инициализирует новый экземпляр класса . + + + Представляет дерево выражения и обеспечивает функциональность для выполнения дерева выражения после его перезаписи. + Тип данных значения, получаемого в результате выполнения дерева выражения. + + + Инициализирует новый экземпляр класса . + Дерево выражения, которое должно быть связано с новым экземпляром. + + + Представляет в виде источника данных . + + + Инициализирует новый экземпляр класса . + + + Представляет коллекцию в виде источника данных . + Тип данных в коллекции. + + + Инициализирует новый экземпляр класса и связывает его с указанной коллекцией . + Коллекция, которую необходимо связать с новым экземпляром. + + + Инициализирует новый экземпляр класса и связывает его с деревом выражения. + Дерево выражения, которое должно быть связано с новым экземпляром. + + + Возвращает перечислитель, который позволяет выполнять перебор элементов связанной коллекции или, если коллекция имеет значение NULL, коллекции, получаемой в результате перезаписи связанного дерева выражения в виде запроса к источнику данных и его выполнения. + Перечислитель, с помощью которого можно осуществлять перебор по связанному источнику данных. + + + Возвращает перечислитель, который позволяет выполнять перебор элементов связанной коллекции или, если коллекция имеет значение NULL, коллекции, получаемой в результате перезаписи связанного дерева выражения в виде запроса к источнику данных и его выполнения. + Перечислитель, с помощью которого можно осуществлять перебор по связанному источнику данных. + + + Получает тип данных в коллекции, представленной данным экземпляром. + Тип данных в коллекции, представленной данным экземпляром. + + + Получает дерево выражения, связанное с данным экземпляром или представляющее его. + Дерево выражения, связанное с данным экземпляром или представляющее его. + + + Получает объект поставщика запросов, связанного с данным экземпляром. + Поставщик запросов, связанный с данным экземпляром. + + + Создает новый объект и связывает его с указанным деревом выражения, которое представляет коллекцию данных . + Объект EnumerableQuery, связанный с данным выражением . + Дерево выражения, которое требуется выполнить. + Тип данных в коллекции, представленной выражением . + + + Создает новый объект и связывает его с указанным деревом выражения, которое представляет коллекцию данных . + Объект , связанный с этим выражением . + Дерево выражения, которое представляет коллекцию данных . + + + Выполняет выражение после его перезаписи, чтобы вместо методов для все перечислимых источников данных, к которым нельзя создать запрос с помощью методов , вызывались методы . + Значение, получаемое в результате выполнения . + Дерево выражения, которое требуется выполнить. + Тип данных в коллекции, представленной выражением . + + + Выполняет выражение после его перезаписи, чтобы вместо методов для все перечислимых источников данных, к которым нельзя создать запрос с помощью методов , вызывались методы . + Значение, получаемое в результате выполнения . + Дерево выражения, которое требуется выполнить. + + + Возвращает текстовое представление перечислимой коллекции или, если она имеет значение NULL, дерева выражения, связанного с данным экземпляром. + Текстовое представление перечислимой коллекции или, если она имеет значение NULL, дерева выражения, связанного с данным экземпляром. + + + Предоставляет набор методов типа static (Shared в Visual Basic) для выполнения запросов к структурам данных, реализующим объект . + + + Применяет к последовательности агрегатную функцию. + Конечное агрегатное значение. + Последовательность, для которой выполняется статистическая операция. + Агрегатная функция, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Последовательность не содержит элементов. + + + Применяет к последовательности агрегатную функцию.Указанное начальное значение используется в качестве исходного значения агрегатной операции. + Конечное агрегатное значение. + Последовательность, для которой выполняется статистическая операция. + Начальное агрегатное значение. + Агрегатная функция, вызываемая для каждого элемента. + Тип элементов последовательности . + Тип агрегатного значения. + Значение параметра или — null. + + + Применяет к последовательности агрегатную функцию.Указанное начальное значение служит исходным значением для агрегатной операции, а указанная функция используется для выбора результирующего значения. + Преобразованное конечное агрегатное значение. + Последовательность, для которой выполняется статистическая операция. + Начальное агрегатное значение. + Агрегатная функция, вызываемая для каждого элемента. + Функция, преобразующая конечное агрегатное значение в результирующее значение. + Тип элементов последовательности . + Тип агрегатного значения. + Тип результирующего значения. + Значение параметра , или — null. + + + Проверяет, все ли элементы последовательности удовлетворяют условию. + true, если каждый элемент исходной последовательности проходит проверку, определяемую указанным предикатом, или если последовательность пуста; в противном случае — false. + Последовательность, элементы которой проверяются на соответствие условию. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Проверяет, содержит ли последовательность какие-либо элементы. + true, если исходная последовательность содержит какие-либо элементы, в противном случае — false. + Последовательность, проверяемая на наличие элементов. + Тип элементов последовательности . + Параметр имеет значение null. + + + Проверяет, удовлетворяет ли какой-либо элемент последовательности заданному условию. + true, если какие-либо элементы исходной последовательности проходят проверку, определяемую указанным предикатом; в противном случае — false. + Последовательность, элементы которой проверяются на соответствие условию. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Преобразовывает универсальный объект в универсальный объект . + Объект , представляющий входную последовательность. + Последовательность, подлежащая преобразованию. + Тип элементов последовательности . + Параметр имеет значение null. + + + Преобразовывает коллекцию в объект . + Объект , представляющий входную последовательность. + Последовательность, подлежащая преобразованию. + Последовательность не реализует объект для некоторых типов . + Параметр имеет значение null. + + + Вычисляет среднее последовательности значений типа . + Среднее для последовательности значений. + Последовательность значений , для которых вычисляется среднее. + Параметр имеет значение null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа . + Среднее для последовательности значений. + Последовательность значений , для которых вычисляется среднее. + Параметр имеет значение null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа . + Среднее для последовательности значений. + Последовательность значений , для которых вычисляется среднее. + Параметр имеет значение null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа . + Среднее для последовательности значений. + Последовательность значений , для которых вычисляется среднее. + Параметр имеет значение null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений обнуляемого типа. + Среднее арифметическое значений последовательности, или null, если исходная последовательность пуста либо содержит только значения null. + Последовательность значений обнуляемого типа, для которых вычисляется среднее. + Параметр имеет значение null. + + + Вычисляет среднее для последовательности значений обнуляемого типа. + Среднее арифметическое значений последовательности, или null, если исходная последовательность пуста либо содержит только значения null. + Последовательность значений обнуляемого типа, для которых вычисляется среднее. + Параметр имеет значение null. + + + Вычисляет среднее для последовательности значений обнуляемого типа. + Среднее арифметическое значений последовательности, или null, если исходная последовательность пуста либо содержит только значения null. + Последовательность значений обнуляемого типа, для которых вычисляется среднее. + Параметр имеет значение null. + + + Вычисляет среднее для последовательности значений обнуляемого типа. + Среднее арифметическое значений последовательности, или null, если исходная последовательность пуста либо содержит только значения null. + Последовательность значений обнуляемого типа, для которых вычисляется среднее. + Параметр имеет значение null. + + + Вычисляет среднее для последовательности значений обнуляемого типа. + Среднее арифметическое значений последовательности, или null, если исходная последовательность пуста либо содержит только значения null. + Последовательность значений обнуляемого типа, для которых вычисляется среднее. + Параметр имеет значение null. + + + Вычисляет среднее для последовательности значений типа . + Среднее для последовательности значений. + Последовательность значений , для которых вычисляется среднее. + Параметр имеет значение null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Среднее для последовательности значений. + Последовательность значений, используемых для вычисления среднего. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Среднее для последовательности значений. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Среднее для последовательности значений. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Среднее для последовательности значений. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений обнуляемого типа, которая получается в результате применения функции проекции к каждому элементу входной последовательности. + Среднее арифметическое значений последовательности, или null, если последовательность пуста либо содержит только значения null. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет среднее для последовательности значений обнуляемого типа, которая получается в результате применения функции проекции к каждому элементу входной последовательности. + Среднее арифметическое значений последовательности, или null, если последовательность пуста либо содержит только значения null. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет среднее для последовательности значений обнуляемого типа, которая получается в результате применения функции проекции к каждому элементу входной последовательности. + Среднее арифметическое значений последовательности, или null, если последовательность пуста либо содержит только значения null. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет среднее для последовательности значений обнуляемого типа, которая получается в результате применения функции проекции к каждому элементу входной последовательности. + Среднее арифметическое значений последовательности, или null, если последовательность пуста либо содержит только значения null. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет среднее для последовательности значений обнуляемого типа, которая получается в результате применения функции проекции к каждому элементу входной последовательности. + Среднее арифметическое значений последовательности, или null, если последовательность пуста либо содержит только значения null. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет среднее для последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Среднее для последовательности значений. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Последовательность не содержит элементов. + + + Преобразовывает элементы объекта в заданный тип. + Объект , который содержит все элементы исходной последовательности, преобразованные в заданный тип. + Объект , содержащий преобразуемые элементы. + Тип, в который преобразуются элементы объекта . + Параметр имеет значение null. + Элемент последовательности не может быть приведен к типу . + + + Объединяет две последовательности. + Объект , содержащий объединенные элементы двух входных последовательностей. + Первая из объединяемых последовательностей. + Последовательность, объединяемая с первой последовательностью. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Определяет, содержится ли указанный элемент в последовательности, используя компаратор проверки на равенство по умолчанию. + true, если входная последовательность содержит элемент с указанным значением, в противном случае — false. + Объект , в котором требуется найти элемент . + Объект, который требуется найти в последовательности. + Тип элементов последовательности . + Параметр имеет значение null. + + + Определяет, содержит ли последовательность заданный элемент, используя указанный компаратор . + true, если входная последовательность содержит элемент с указанным значением, в противном случае — false. + Объект , в котором требуется найти элемент . + Объект, который требуется найти в последовательности. + Компаратор , используемый для сравнения значений. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает количество элементов в последовательности. + Число элементов во входной последовательности. + Объект , содержащий элементы, которые требуется подсчитать. + Тип элементов последовательности . + Параметр имеет значение null. + Число элементов в последовательности больше, чем . + + + Возвращает количество элементов указанной последовательности, удовлетворяющих определенному условию. + Число элементов последовательности, удовлетворяющих условию функции предиката. + Объект , содержащий элементы, которые требуется подсчитать. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + Число элементов в последовательности больше, чем . + + + Возвращает элементы указанной последовательности или одноэлементную коллекцию, содержащую значение параметра типа по умолчанию, если последовательность пуста. + Объект , содержащий значение default(), если последовательность пуста; в противном случае возвращается . + Объект , для которого возвращается значение по умолчанию, если последовательность пуста. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает элементы указанной последовательности или одноэлементную коллекцию, содержащую указанное значение, если последовательность пуста. + Объект , содержащий значение , если последовательность пуста; в противном случае возвращается . + Объект , для которого возвращается указанное значение, если последовательность пуста. + Значение, возвращаемое в случае пустой последовательности. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает различающиеся элементы последовательности, используя для сравнения значений компаратор проверки на равенство по умолчанию. + Объект , содержащий различающиеся элементы из последовательности . + Объект , из которого требуется удалить дубликаты. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает различающиеся элементы последовательности, используя для сравнения значений указанный компаратор . + Объект , содержащий различающиеся элементы из последовательности . + Объект , из которого требуется удалить дубликаты. + Компаратор , используемый для сравнения значений. + Тип элементов последовательности . + Значение параметра или — null. + + + Возвращает элемент по указанному индексу в последовательности. + Элемент, находящийся в указанной позиции в последовательности . + Объект , из которого требуется возвратить элемент. + Отсчитываемый от нуля индекс извлекаемого элемента. + Тип элементов последовательности . + Параметр имеет значение null. + Значение параметра меньше нуля. + + + Возвращает элемент по указанному индексу в последовательности или значение по умолчанию, если индекс вне допустимого диапазона. + default(), если позиция находится вне последовательности ; в противном случае — элемент, находящийся в указанной позиции в последовательности . + Объект , из которого требуется возвратить элемент. + Отсчитываемый от нуля индекс извлекаемого элемента. + Тип элементов последовательности . + Параметр имеет значение null. + + + Находит разность множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию. + Объект , являющийся разностью двух последовательностей как множеств. + Объект , из которого требуется извлечь элементы, отсутствующие в последовательности . + Последовательность , элементы которой, входящие также в первую последовательность, не будут включены в возвращаемую последовательность. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Находит разность множеств, представленных двумя последовательностями, используя для сравнения значений указанный компаратор . + Объект , являющийся разностью двух последовательностей как множеств. + Объект , из которого требуется извлечь элементы, отсутствующие в последовательности . + Последовательность , элементы которой, входящие также в первую последовательность, не будут включены в возвращаемую последовательность. + Компаратор , используемый для сравнения значений. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Возвращает первый элемент последовательности. + Первый элемент последовательности . + Объект , первый элемент которого требуется возвратить. + Тип элементов последовательности . + Параметр имеет значение null. + Исходная последовательность пуста. + + + Возвращает первый элемент последовательности, удовлетворяющий указанному условию. + Первый элемент последовательности , прошедший проверку с помощью предиката . + Объект , из которого требуется возвратить элемент. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + Ни один элемент не удовлетворяет условию предиката .– или –Исходная последовательность пуста. + + + Возвращает первый элемент последовательности или значение по умолчанию, если последовательность не содержит элементов. + default(), если последовательность пуста, в противном случае — первый элемент последовательности . + Объект , первый элемент которого требуется возвратить. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает первый элемент последовательности, удовлетворяющий указанному условию, или значение по умолчанию, если ни одного такого элемента не найдено. + default(), если последовательность пуста или если ни один ее элемент не прошел проверку, определенную предикатом ; в противном случае — первый элемент последовательности , прошедший проверку, определенную предикатом . + Объект , из которого требуется возвратить элемент. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа. + Объект IQueryable<IGrouping<TKey, TSource>> в C# или IQueryable(Of IGrouping(Of TKey, TSource)) в Visual Basic, где каждый объект содержит последовательность объектов и ключ. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и сравнивает ключи с помощью указанного компаратора. + Объект IQueryable<IGrouping<TKey, TSource>> в C# или IQueryable(Of IGrouping(Of TKey, TSource)) в Visual Basic, где каждый объект содержит последовательность объектов и ключ. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра , или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и проецирует элементы каждой группы с помощью указанной функции. + Объект IQueryable<IGrouping<TKey, TElement>> в C# или IQueryable(Of IGrouping(Of TKey, TElement)) в Visual Basic, где каждый объект содержит последовательность объектов типа и ключ. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Функция, сопоставляющая каждый исходный элемент с элементом объекта . + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Тип элементов каждого объекта . + Значение параметра , или — null. + + + Группирует элементы последовательности и проецирует элементы каждой группы с помощью указанной функции.Значения ключей сравниваются с использованием заданного компаратора. + Объект IQueryable<IGrouping<TKey, TElement>> в C# или IQueryable(Of IGrouping(Of TKey, TElement)) в Visual Basic, где каждый объект содержит последовательность объектов типа и ключ. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Функция, сопоставляющая каждый исходный элемент с элементом объекта . + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Тип элементов каждого объекта . + Значение параметра , , или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа.Элементы каждой группы проецируются с помощью указанной функции. + Объект T:System.Linq.IQueryable`1 с аргументом типа , каждый элемент которого представляет проекцию группы и ее ключа. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Функция, сопоставляющая каждый исходный элемент с элементом объекта . + Функция для создания результирующего значения для каждой группы. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Тип элементов каждого объекта . + Тип результирующего значения, возвращаемого функцией . + Значение параметра , , или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа.Ключи сравниваются с помощью указанного компаратора, элементы каждой группы проецируются с помощью указанной функции. + Объект T:System.Linq.IQueryable`1 с аргументом типа , каждый элемент которого представляет проекцию группы и ее ключа. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Функция, сопоставляющая каждый исходный элемент с элементом объекта . + Функция для создания результирующего значения для каждой группы. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Тип элементов каждого объекта . + Тип результирующего значения, возвращаемого функцией . + Значение параметра , , , или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. + Объект T:System.Linq.IQueryable`1 с аргументом типа , каждый элемент которого представляет проекцию группы и ее ключа. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Функция для создания результирующего значения для каждой группы. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Тип результирующего значения, возвращаемого функцией . + Значение параметра , или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа.Ключи сравниваются с использованием заданного компаратора. + Объект T:System.Linq.IQueryable`1 с аргументом типа , каждый элемент которого представляет проекцию группы и ее ключа. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Функция для создания результирующего значения для каждой группы. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Тип результирующего значения, возвращаемого функцией . + Значение параметра , , или — null. + + + Устанавливает корреляцию между элементами двух последовательностей на основе равенства ключей и группирует результаты.Для сравнения ключей используется компаратор проверки на равенство по умолчанию. + Объект , который содержит элементы типа , полученные в результате соединения двух последовательностей с группировкой. + Первая последовательность для соединения. + Последовательность, соединяемая с первой последовательностью. + Функция, извлекающая ключ соединения из каждого элемента первой последовательности. + Функция, извлекающая ключ соединения из каждого элемента второй последовательности. + Функция, создающая результирующий элемент для элемента первой последовательности и коллекции соответствующих элементов второй последовательности. + Тип элементов первой последовательности. + Тип элементов второй последовательности. + Тип ключей, возвращаемых функциями селектора ключа. + Тип результирующих элементов. + Значение параметра , , , или — null. + + + Устанавливает корреляцию между элементами двух последовательностей на основе равенства ключей и группирует результаты.Для сравнения ключей используется указанный компаратор . + Объект , который содержит элементы типа , полученные в результате соединения двух последовательностей с группировкой. + Первая последовательность для соединения. + Последовательность, соединяемая с первой последовательностью. + Функция, извлекающая ключ соединения из каждого элемента первой последовательности. + Функция, извлекающая ключ соединения из каждого элемента второй последовательности. + Функция, создающая результирующий элемент для элемента первой последовательности и коллекции соответствующих элементов второй последовательности. + Компаратор, используемый для хэширования и сравнения ключей. + Тип элементов первой последовательности. + Тип элементов второй последовательности. + Тип ключей, возвращаемых функциями селектора ключа. + Тип результирующих элементов. + Значение параметра , , , или — null. + + + Находит пересечение множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию. + Последовательность, представляющая собой пересечение двух заданных последовательностей как множеств. + Последовательность, из которой возвращаются различающиеся элементы, входящие также в . + Последовательность, из которой возвращаются различающиеся элементы, входящие также в первую последовательность. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Находит пересечение множеств, представленных двумя последовательностями, используя для сравнения значений указанный компаратор . + Объект , являющийся пересечением двух последовательностей как множеств. + Объект , из которого требуется извлечь различающиеся элементы, входящие также в последовательность . + Объект , из которого извлекаются различающиеся элементы, входящие также в первую последовательность. + Компаратор , используемый для сравнения значений. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Устанавливает корреляцию между элементами двух последовательностей на основе сопоставления ключей.Для сравнения ключей используется компаратор проверки на равенство по умолчанию. + Объект , который содержит элементы типа , полученные в результате внутреннего соединения двух последовательностей. + Первая последовательность для соединения. + Последовательность, соединяемая с первой последовательностью. + Функция, извлекающая ключ соединения из каждого элемента первой последовательности. + Функция, извлекающая ключ соединения из каждого элемента второй последовательности. + Функция для создания результирующего элемента для пары соответствующих элементов. + Тип элементов первой последовательности. + Тип элементов второй последовательности. + Тип ключей, возвращаемых функциями селектора ключа. + Тип результирующих элементов. + Значение параметра , , , или — null. + + + Устанавливает корреляцию между элементами двух последовательностей на основе сопоставления ключей.Для сравнения ключей используется указанный компаратор . + Объект , который содержит элементы типа , полученные в результате внутреннего соединения двух последовательностей. + Первая последовательность для соединения. + Последовательность, соединяемая с первой последовательностью. + Функция, извлекающая ключ соединения из каждого элемента первой последовательности. + Функция, извлекающая ключ соединения из каждого элемента второй последовательности. + Функция для создания результирующего элемента для пары соответствующих элементов. + Компаратор , используемый для хэширования и сравнения ключей. + Тип элементов первой последовательности. + Тип элементов второй последовательности. + Тип ключей, возвращаемых функциями селектора ключа. + Тип результирующих элементов. + Значение параметра , , , или — null. + + + Возвращает последний элемент последовательности. + Значение, находящееся в последней позиции последовательности . + Объект , последний элемент которого требуется возвратить. + Тип элементов последовательности . + Параметр имеет значение null. + Исходная последовательность пуста. + + + Возвращает последний элемент последовательности, удовлетворяющий указанному условию. + Последний элемент последовательности , прошедший проверку, заданную предикатом . + Объект , из которого требуется возвратить элемент. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + Ни один элемент не удовлетворяет условию предиката .– или –Исходная последовательность пуста. + + + Возвращает последний элемент последовательности или значение по умолчанию, если последовательность не содержит элементов. + default(), если последовательность пуста, в противном случае — последний элемент последовательности . + Объект , последний элемент которого требуется возвратить. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает последний элемент последовательности, удовлетворяющий указанному условию, или значение по умолчанию, если ни одного такого элемента не найдено. + default(), если последовательность пуста или ни один ее элемент не прошел проверку функцией предиката, в противном случае — последний элемент последовательности , прошедший проверку функцией предиката. + Объект , из которого требуется возвратить элемент. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Возвращает значение типа , представляющее общее число элементов в последовательности. + Число элементов в последовательности . + Объект , содержащий элементы, которые требуется подсчитать. + Тип элементов последовательности . + Параметр имеет значение null. + Число элементов больше, чем . + + + Возвращает значение типа , представляющее число элементов последовательности, удовлетворяющих заданному условию. + Число элементов последовательности , удовлетворяющих условию функции предиката. + Объект , содержащий элементы, которые требуется подсчитать. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + Число найденных элементов больше, чем . + + + Возвращает максимальное значение для универсального интерфейса . + Максимальное значение в последовательности. + Последовательность значений, для которой определяется максимум. + Тип элементов последовательности . + Параметр имеет значение null. + + + Вызывает функцию проекции для каждого элемента универсального интерфейса и возвращает максимальное результирующее значение. + Максимальное значение в последовательности. + Последовательность значений, для которой определяется максимум. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Тип значения, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Возвращает минимальное значение для универсального интерфейса . + Минимальное значение в последовательности. + Последовательность значений, для которой определяется минимум. + Тип элементов последовательности . + Параметр имеет значение null. + + + Вызывает функцию проекции для каждого элемента универсального интерфейса и возвращает минимальное результирующее значение. + Минимальное значение в последовательности. + Последовательность значений, для которой определяется минимум. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Тип значения, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Выполняет фильтрацию элементов объекта по заданному типу. + Коллекция элементов последовательности , имеющих тип . + Объект , элементы которого следует фильтровать. + Тип, по которому фильтруются элементы последовательности. + Параметр имеет значение null. + + + Сортирует элементы последовательности в порядке возрастания ключа. + Объект , элементы которого отсортированы по ключу. + Последовательность значений, которые следует упорядочить. + Функция, извлекающая ключ из элемента. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Сортирует элементы последовательности в порядке возрастания с использованием указанного компаратора. + Объект , элементы которого отсортированы по ключу. + Последовательность значений, которые следует упорядочить. + Функция, извлекающая ключ из элемента. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра , или — null. + + + Сортирует элементы последовательности в порядке убывания ключа. + Объект , элементы которого отсортированы по ключу в порядке убывания. + Последовательность значений, которые следует упорядочить. + Функция, извлекающая ключ из элемента. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Сортирует элементы последовательности в порядке убывания с использованием указанного компаратора. + Объект , элементы которого отсортированы по ключу в порядке убывания. + Последовательность значений, которые следует упорядочить. + Функция, извлекающая ключ из элемента. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра , или — null. + + + Изменяет порядок элементов последовательности на противоположный. + Объект , элементы которого соответствуют элементам входной последовательности, но следуют в противоположном порядке. + Последовательность значений, которые следует расставить в обратном порядке. + Тип элементов последовательности . + Параметр имеет значение null. + + + Проецирует каждый элемент последовательности в новую форму. + Объект , элементы которого получены в результате вызова функции проекции для каждого элемента последовательности . + Последовательность значений, которые следует проецировать. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Тип значения, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Проецирует каждый элемент последовательности в новую форму, добавляя индекс элемента. + Объект , элементы которого получены в результате вызова функции проекции для каждого элемента последовательности . + Последовательность значений, которые следует проецировать. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Тип значения, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Проецирует каждый элемент последовательности в объект и вызывает функцию селектора результата для каждого элемента.Результирующие значения из всех промежуточных последовательностей возвращаются объединенными в одну одномерную последовательность. + Объект , элементы которого получены в результате вызова функции проекции "один ко многим" для каждого элемента последовательности и последующего сопоставления каждого элемента такой промежуточной последовательности и соответствующего ему элемента последовательности с результирующим элементом. + Последовательность значений, которые следует проецировать. + Функция проекции, применяемая к каждому элементу входной последовательности. + Функция проекции, применяемая к каждому элементу каждой промежуточной последовательности. + Тип элементов последовательности . + Тип промежуточных элементов, собранных функцией, заданной параметром . + Тип элементов результирующей последовательности. + Значение параметра , или — null. + + + Проецирует каждый элемент последовательности в объект и объединяет результирующие последовательности в одну последовательность. + Объект , элементы которого получены в результате вызова функции проекции "один ко многим" для каждого элемента входной последовательности. + Последовательность значений, которые следует проецировать. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Тип элементов последовательности, возвращаемых функцией, заданной параметром . + Значение параметра или — null. + + + Проецирует каждый элемент последовательности в объект , включающий индекс исходного элемента, на основе которого он был создан.Для каждого элемента каждой промежуточной последовательности вызывается функция селектора результата, и результирующие значения возвращаются объединенными в одну одномерную последовательность. + Объект , элементы которого получены в результате вызова функции проекции "один ко многим" для каждого элемента последовательности и последующего сопоставления каждого элемента такой промежуточной последовательности и соответствующего ему элемента последовательности с результирующим элементом. + Последовательность значений, которые следует проецировать. + Функция проекции, применяемая к каждому элементу входной последовательности; второй параметр этой функции представляет индекс исходного элемента. + Функция проекции, применяемая к каждому элементу каждой промежуточной последовательности. + Тип элементов последовательности . + Тип промежуточных элементов, собранных функцией, заданной параметром . + Тип элементов результирующей последовательности. + Значение параметра , или — null. + + + Проецирует каждый элемент последовательности в объект и объединяет результирующие последовательности в одну последовательность.Индекс каждого элемента исходной последовательности используется в проецированной форме этого элемента. + Объект , элементы которого получены в результате вызова функции проекции "один ко многим" для каждого элемента входной последовательности. + Последовательность значений, которые следует проецировать. + Функция проекции, применяемая к каждому элементу; второй параметр этой функции представляет индекс исходного элемента. + Тип элементов последовательности . + Тип элементов последовательности, возвращаемых функцией, заданной параметром . + Значение параметра или — null. + + + Определяет, совпадают ли две последовательности, используя для сравнения элементов компаратор проверки на равенство по умолчанию. + true, если у двух исходных последовательностей одинаковая длина и соответствующие элементы совпадают, в противном случае — false. + Объект , элементы которого сравниваются с элементами последовательности . + Объект , элементы которого сравниваются с элементами первой последовательности. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Определяет, совпадают ли две последовательности, используя для сравнения элементов указанный компаратор . + true, если у двух исходных последовательностей одинаковая длина и соответствующие элементы совпадают, в противном случае — false. + Объект , элементы которого сравниваются с элементами последовательности . + Объект , элементы которого сравниваются с элементами первой последовательности. + Компаратор , используемый для сравнения элементов. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Возвращает единственный элемент последовательности и генерирует исключение, если число элементов последовательности отлично от 1. + Единственный элемент входной последовательности. + Объект , единственный элемент которого требуется возвратить. + Тип элементов последовательности . + Параметр имеет значение null. + + имеет более одного элемента. + + + Возвращает единственный элемент последовательности, удовлетворяющий заданному условию, и генерирует исключение, если таких элементов больше одного. + Единственный элемент входной последовательности, удовлетворяющий условию предиката . + Объект , из которого требуется возвратить единственный элемент. + Функция для проверки элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + Ни один элемент не удовлетворяет условию предиката .– или –Условию предиката удовлетворяет более одного элемента.– или –Исходная последовательность пуста. + + + Возвращает единственный элемент последовательности или значение по умолчанию, если последовательность пуста; если в последовательности более одного элемента, генерируется исключение. + Единственный элемент входной последовательности или default(), если в последовательности нет элементов. + Объект , единственный элемент которого требуется возвратить. + Тип элементов последовательности . + Параметр имеет значение null. + + имеет более одного элемента. + + + Возвращает единственный элемент последовательности, удовлетворяющий заданному условию, или значение по умолчанию, если такого элемента не существует; если условию удовлетворяет более одного элемента, генерируется исключение. + Единственный элемент входной последовательности, удовлетворяющий условию предиката , или default(), если такой элемент не найден. + Объект , из которого требуется возвратить единственный элемент. + Функция для проверки элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + Условию предиката удовлетворяет более одного элемента. + + + Пропускает заданное число элементов в последовательности и возвращает остальные элементы. + Объект , содержащий элементы из входной последовательности, начиная с указанного индекса. + Объект , из которого требуется возвратить элементы. + Число элементов, пропускаемых перед возвращением остальных элементов. + Тип элементов последовательности . + Параметр имеет значение null. + + + Пропускает элементы в последовательности, пока они удовлетворяют заданному условию, и затем возвращает оставшиеся элементы. + Объект , содержащий цепочку элементов последовательности , начиная с первого элемента, который не прошел проверку, заданную предикатом . + Объект , из которого требуется возвратить элементы. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Пропускает элементы в последовательности, пока они удовлетворяют заданному условию, и затем возвращает оставшиеся элементы.Индекс элемента используется в логике функции предиката. + Объект , содержащий цепочку элементов последовательности , начиная с первого элемента, который не прошел проверку, заданную предикатом . + Объект , из которого требуется возвратить элементы. + Функция, применяемая к каждому элементу для проверки условия; второй параметр этой функции представляет индекс исходного элемента. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет сумму последовательности значений типа . + Сумма последовательности значений. + Последовательность значений , сумму которых требуется вычислить. + Параметр имеет значение null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа . + Сумма последовательности значений. + Последовательность значений , сумму которых требуется вычислить. + Параметр имеет значение null. + + + Вычисляет сумму последовательности значений типа . + Сумма последовательности значений. + Последовательность значений , сумму которых требуется вычислить. + Параметр имеет значение null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа . + Сумма последовательности значений. + Последовательность значений , сумму которых требуется вычислить. + Параметр имеет значение null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений обнуляемого типа. + Сумма последовательности значений. + Последовательность значений обнуляемого типа, сумму которых требуется вычислить. + Параметр имеет значение null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений обнуляемого типа. + Сумма последовательности значений. + Последовательность значений обнуляемого типа, сумму которых требуется вычислить. + Параметр имеет значение null. + + + Вычисляет сумму последовательности значений обнуляемого типа. + Сумма последовательности значений. + Последовательность значений обнуляемого типа, сумму которых требуется вычислить. + Параметр имеет значение null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений обнуляемого типа. + Сумма последовательности значений. + Последовательность значений обнуляемого типа, сумму которых требуется вычислить. + Параметр имеет значение null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений обнуляемого типа. + Сумма последовательности значений. + Последовательность значений обнуляемого типа, сумму которых требуется вычислить. + Параметр имеет значение null. + + + Вычисляет сумму последовательности значений типа . + Сумма последовательности значений. + Последовательность значений , сумму которых требуется вычислить. + Параметр имеет значение null. + + + Вычисляет сумму последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет сумму последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа (допускающей значения NULL), получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа (допускающей значения NULL), получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет сумму последовательности значений типа (допускающей значения NULL), получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений обнуляемого типа, получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа (допускающей значения NULL), получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет сумму последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Возвращает указанное число подряд идущих элементов с начала последовательности. + Объект , содержащий заданное число элементов с начала последовательности . + Последовательность, из которой требуется возвратить элементы. + Число возвращаемых элементов. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает цепочку элементов последовательности, удовлетворяющих указанному условию. + Объект , содержащий элементы входной последовательности до первого элемента, который не прошел проверку, заданную предикатом . + Последовательность, из которой требуется возвратить элементы. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Возвращает цепочку элементов последовательности, удовлетворяющих указанному условию.Индекс элемента используется в логике функции предиката. + Объект , содержащий элементы входной последовательности до первого элемента, который не прошел проверку, заданную предикатом . + Последовательность, из которой требуется возвратить элементы. + Функция, применяемая к каждому элементу для проверки условия; второй параметр этой функции представляет индекс элемента в исходной последовательности. + Тип элементов последовательности . + Значение параметра или — null. + + + Выполняет дополнительное упорядочение элементов последовательности в порядке возрастания ключа. + Объект , элементы которого отсортированы по ключу. + Объект , содержащий сортируемые элементы. + Функция, извлекающая ключ из каждого элемента. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Выполняет дополнительное упорядочение элементов последовательности в порядке возрастания с использованием указанного компаратора. + Объект , элементы которого отсортированы по ключу. + Объект , содержащий сортируемые элементы. + Функция, извлекающая ключ из каждого элемента. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра , или — null. + + + Выполняет дополнительное упорядочение элементов последовательности в порядке убывания ключа. + Объект , элементы которого отсортированы по ключу в порядке убывания. + Объект , содержащий сортируемые элементы. + Функция, извлекающая ключ из каждого элемента. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Выполняет дополнительное упорядочение элементов последовательности в порядке убывания с использованием указанного компаратора. + Коллекция, элементы которой отсортированы по ключу в порядке убывания. + Объект , содержащий сортируемые элементы. + Функция, извлекающая ключ из каждого элемента. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией . + Значение параметра , или — null. + + + Находит объединение множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию. + Объект , который содержит элементы, имеющиеся в обеих входных последовательностях, кроме дубликатов. + Последовательность, различающиеся элементы которой образуют первое множество для операции объединения. + Последовательность, различающиеся элементы которой образуют второе множество для операции объединения. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Находит объединение множеств, представленных двумя последовательностями, используя указанный компаратор . + Объект , который содержит элементы, имеющиеся в обеих входных последовательностях, кроме дубликатов. + Последовательность, различающиеся элементы которой образуют первое множество для операции объединения. + Последовательность, различающиеся элементы которой образуют второе множество для операции объединения. + Компаратор , используемый для сравнения значений. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Выполняет фильтрацию последовательности значений на основе заданного предиката. + Объект , содержащий элементы входной последовательности, которые удовлетворяют условию, заданному предикатом . + Объект , подлежащий фильтрации. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Выполняет фильтрацию последовательности значений на основе заданного предиката.Индекс каждого элемента используется в логике функции предиката. + Объект , содержащий элементы входной последовательности, которые удовлетворяют условию, заданному предикатом . + Объект , подлежащий фильтрации. + Функция, применяемая к каждому элементу для проверки условия; второй параметр этой функции представляет индекс элемента в исходной последовательности. + Тип элементов последовательности . + Значение параметра или — null. + + + Объединяет две последовательности, используя указанную функцию предиката. + Объект , содержащий объединенные элементы двух входных последовательностей. + Первая последовательность для объединения. + Вторая последовательность для объединения. + Функция, которая определяет, как объединить элементы двух последовательностей. + Тип элементов первой входной последовательности. + Тип элементов второй входной последовательности. + Тип элементов результирующей последовательности. + Значение параметра или — null. + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netcore50/zh-hans/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/zh-hans/System.Linq.Queryable.xml new file mode 100644 index 0000000..2ffa861 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/zh-hans/System.Linq.Queryable.xml @@ -0,0 +1,1382 @@ + + + + System.Linq.Queryable + + + + 表示一个表达式目录树,并提供在重写该表达式目录树后执行该表达式目录树的功能。 + + + 初始化 类的新实例。 + + + 表示一个表达式目录树,并提供在重写该表达式目录树后执行该表达式目录树的功能。 + 执行表达式目录树后所得到的值的数据类型。 + + + 初始化 类的新实例。 + 要与新实例关联的表达式目录树。 + + + 表示为 数据源。 + + + 初始化 类的新实例。 + + + 集合表示为 数据源。 + 集合中数据的类型。 + + + 初始化 类的新实例,并将该实例与 集合关联。 + 要与新实例关联的集合。 + + + 初始化 类的新实例,并将该实例与表达式目录树关联。 + 要与新实例关联的表达式目录树。 + + + 返回一个枚举数,该枚举数可以循环访问关联的 集合,如果该集合为空,则循环访问通过将关联的表达式目录树重写为 数据源上的查询并执行该查询而得到的集合。 + 可用来循环访问关联的数据源的枚举数。 + + + 返回一个枚举数,该枚举数可以循环访问关联的 集合,如果该集合为空,则循环访问通过将关联的表达式目录树重写为 数据源上的查询并执行该查询而得到的集合。 + 可用来循环访问关联的数据源的枚举数。 + + + 获取该实例所表示的集合中的数据的类型。 + 该实例所表示的集合中的数据的类型。 + + + 获取与该实例关联或者表示该实例的表达式目录树。 + 与该实例关联或者表示该实例的表达式目录树。 + + + 获取与该实例关联的查询提供程序。 + 与该实例关联的查询提供程序。 + + + 构造一个新的 对象,并将它与表示 数据集合的指定表达式目录树关联。 + 关联的 EnumerableQuery 对象。 + 要执行的表达式目录树。 + + 所表示的集合中的数据的类型。 + + + 构造一个新的 对象,并将它与表示 数据集合的指定表达式目录树关联。 + 关联的 对象。 + 表示 数据集合的表达式目录树。 + + + 在重写表达式后执行表达式,重写的目的是对无法通过 方法查询的任何可枚举数据源调用 方法,而不是调用 方法。 + 执行 后所得到的值。 + 要执行的表达式目录树。 + + 所表示的集合中的数据的类型。 + + + 在重写表达式后执行表达式,重写的目的是对无法通过 方法查询的任何可枚举数据源调用 方法,而不是调用 方法。 + 执行 后所得到的值。 + 要执行的表达式目录树。 + + + 返回可枚举集合的文本表示形式;如果该集合为 null,则返回与此实例关联的表达式树的文本表示形式。 + 可枚举集合的文本表示形式;如果该集合为 null,则为与此实例关联的表达式树的文本表示形式。 + + + 提供一组用于查询实现 的数据结构的 static(在 Visual Basic 中为 Shared)方法。 + + + 对序列应用累加器函数。 + 累加器的最终值。 + 要聚合的序列。 + 要应用于每个元素的累加器函数。 + + 中的元素的类型。 + + 为 null。 + + 中不包含任何元素。 + + + 对序列应用累加器函数。将指定的种子值用作累加器初始值。 + 累加器的最终值。 + 要聚合的序列。 + 累加器的初始值。 + 要对每个元素调用的累加器函数。 + + 中的元素的类型。 + 累加器值的类型。 + + 为 null。 + + + 对序列应用累加器函数。将指定的种子值用作累加器的初始值,并使用指定的函数选择结果值。 + 已转换的累加器最终值。 + 要聚合的序列。 + 累加器的初始值。 + 要对每个元素调用的累加器函数。 + 将累加器的最终值转换为结果值的函数。 + + 中的元素的类型。 + 累加器值的类型。 + 结果值的类型。 + + 为 null。 + + + 确定序列中的所有元素是否都满足条件。 + 如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true;否则为 false。 + 要测试其元素是否满足条件的序列。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 确定序列是否包含任何元素。 + 如果源序列包含任何元素,则为 true;否则为 false。 + 要检查是否为空的序列。 + + 中的元素的类型。 + + 为 null。 + + + 确定序列中的任何元素是否都满足条件。 + 如果源序列中的任何元素都通过指定谓词中的测试,则为 true;否则为 false。 + 要测试其元素是否满足条件的序列。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 将泛型 转换为泛型 + 一个 ,表示输入序列。 + 要转换的序列。 + + 中的元素的类型。 + + 为 null。 + + + 转换为 + 一个 ,表示输入序列。 + 要转换的序列。 + + 未为某些 实现 + + 为 null。 + + + 计算 值序列的平均值。 + 值序列的平均值。 + 要计算平均值的 值序列。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值。 + 值序列的平均值。 + 要计算平均值的 值序列。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值。 + 值序列的平均值。 + 要计算平均值的 值序列。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值。 + 值序列的平均值。 + 要计算平均值的 值序列。 + + 为 null。 + + 中不包含任何元素。 + + + 计算可以为 null 的 值序列的平均值。 + 值序列的平均值;如果 Source 序列为空或仅包含 null 值,则为 null。 + 要计算平均值的可以为 null 的 值序列。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值。 + 值序列的平均值;如果 Source 序列为空或仅包含 null 值,则为 null。 + 要计算平均值的可以为 null 的 值序列。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值。 + 值序列的平均值;如果 Source 序列为空或仅包含 null 值,则为 null。 + 要计算平均值的、可以为 null 的 值序列。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值。 + 值序列的平均值;如果 Source 序列为空或仅包含 null 值,则为 null。 + 要计算平均值的可以为 null 的 值序列。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值。 + 值序列的平均值;如果 Source 序列为空或仅包含 null 值,则为 null。 + 要计算平均值的可以为 null 的 值序列。 + + 为 null。 + + + 计算 值序列的平均值。 + 值序列的平均值。 + 要计算平均值的 值序列。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值。 + 用于计算平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + 中不包含任何元素。 + + + 计算可以为 null 的 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值;如果 序列为空或仅包含 null 值,则为 null。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值;如果 序列为空或仅包含 null 值,则为 null。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值;如果 序列为空或仅包含 null 值,则为 null。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值;如果 序列为空或仅包含 null 值,则为 null。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值;如果 序列为空或仅包含 null 值,则为 null。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + 中不包含任何元素。 + + + 的元素转换为指定的类型。 + 一个 ,包含被转换为指定类型的源序列中的每个元素。 + 包含要转换的元素的 。 + + 中的元素要转换成的类型。 + + 为 null。 + 序列中的元素不能强制转换为 类型。 + + + 连接两个序列。 + 一个 ,包含两个输入序列的连接元素。 + 要连接的第一个序列。 + 要与第一个序列连接的序列。 + 输入序列中的元素的类型。 + + 为 null。 + + + 通过使用默认的相等比较器确定序列是否包含指定的元素。 + 如果输入序列包含具有指定值的元素,则为 true;否则为 false。 + 要在其中定位 。 + 要在序列中定位的对象。 + + 中的元素的类型。 + + 为 null。 + + + 通过使用指定的 确定序列是否包含指定的元素。 + 如果输入序列包含具有指定值的元素,则为 true;否则为 false。 + 要在其中定位 。 + 要在序列中定位的对象。 + 用于比较值的 。 + + 中的元素的类型。 + + 为 null。 + + + 返回序列中的元素数量。 + 输入序列中的元素数量。 + 包含要计数的元素的 。 + + 中的元素的类型。 + + 为 null。 + + 中的元素数量大于 + + + 返回指定序列中满足条件的元素数量。 + 序列中满足谓词函数的条件的元素数量。 + 包含要进行计数的元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + 中的元素数量大于 + + + 返回指定序列的元素;如果序列为空,则返回单一实例集合中的类型参数的默认值。 + 用于在 为空的情况下包含 default() 的 ;否则为 + 用于在序列为空的情况下返回默认值的 。 + + 中的元素的类型。 + + 为 null。 + + + 返回指定序列中的元素;如果序列为空,则返回单一实例集合中的指定值。 + 为空的情况下包含 ;否则为 + 用于在序列为空的情况下返回指定值的 。 + 序列为空时要返回的值。 + + 中的元素的类型。 + + 为 null。 + + + 通过使用默认的相等比较器对值进行比较返回序列中的非重复元素。 + 包含 中的非重复元素的 + 要从中删除重复项的 。 + + 中的元素的类型。 + + 为 null。 + + + 通过使用指定的 对值进行比较返回序列中的非重复元素。 + 包含 中的非重复元素的 + 要从中删除重复项的 。 + 用于比较值的 。 + + 中的元素的类型。 + + 为 null。 + + + 返回序列中指定索引处的元素。 + + 中指定位置处的元素。 + 要从中返回元素的 。 + 要检索的从零开始的元素索引。 + + 中的元素的类型。 + + 为 null。 + + 小于零。 + + + 返回序列中指定索引处的元素;如果索引超出范围,则返回默认值。 + 如果 超出 的界限,则返回 default();否则返回 中指定位置处的元素。 + 要从中返回元素的 。 + 要检索的从零开始的元素索引。 + + 中的元素的类型。 + + 为 null。 + + + 通过使用默认的相等比较器对值进行比较生成两个序列的差集。 + 一个 ,包含两个序列的差集。 + 一个 ,将返回其不在 中的元素。 + 一个 ,其也出现在第一个序列中的元素将不会出现在返回的序列中。 + 输入序列中的元素的类型。 + + 为 null。 + + + 通过使用指定的 对值进行比较产生两个序列的差集。 + 一个 ,包含两个序列的差集。 + 一个 ,将返回其不在 中的元素。 + 一个 ,其也出现在第一个序列中的元素将不会出现在返回的序列中。 + 用于比较值的 。 + 输入序列中的元素的类型。 + + 为 null。 + + + 返回序列中的第一个元素。 + + 中的第一个元素。 + 要返回其第一个元素的 。 + + 中的元素的类型。 + + 为 null。 + 源序列为空。 + + + 返回序列中满足指定条件的第一个元素。 + 通过 中测试的 中的第一个元素。 + 要从中返回元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + 没有元素满足 中的条件。- 或 -源序列为空。 + + + 返回序列中的第一个元素;如果序列中不包含任何元素,则返回默认值。 + 如果 为空,则返回 default();否则返回 中的第一个元素。 + 要返回其第一个元素的 。 + + 中的元素的类型。 + + 为 null。 + + + 返回序列中满足指定条件的第一个元素,如果未找到这样的元素,则返回默认值。 + 如果 为空或没有元素通过 指定的测试,则返回 default(),否则返回 中通过 指定的测试的第一个元素。 + 要从中返回元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组。 + 在 C# 中为 IQueryable<IGrouping<TKey, TSource>>,或者在 Visual Basic 中为 IQueryable(Of IGrouping(Of TKey, TSource)),其中每个 对象都包含一个对象序列和一个键。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组,并使用指定的比较器对键进行比较。 + 在 C# 中为 IQueryable<IGrouping<TKey, TSource>>,或者在 Visual Basic 中为 IQueryable(Of IGrouping(Of TKey, TSource)),其中每个 都包含一个对象序列和一个键。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 一个用于对键进行比较的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组,并且通过使用指定的函数对每个组中的元素进行投影。 + 在 C# 中为 IQueryable<IGrouping<TKey, TElement>>,或在 Visual Basic 中为 IQueryable(Of IGrouping(Of TKey, TElement)),其中每个 都包含一个 类型的对象序列和一个键。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 用于将每个源元素映射到 中的元素的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + 每个 中的元素的类型。 + + 为 null。 + + + 对序列中的元素进行分组并且通过使用指定的函数对每组中的元素进行投影。通过使用指定的比较器对键值进行比较。 + 在 C# 中为 IQueryable<IGrouping<TKey, TElement>>,或在 Visual Basic 中为 IQueryable(Of IGrouping(Of TKey, TElement)),其中每个 都包含一个 类型的对象序列和一个键。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 用于将每个源元素映射到 中的元素的函数。 + 一个用于对键进行比较的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + 每个 中的元素的类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。通过使用指定的函数对每个组的元素进行投影。 + 一个 T:System.Linq.IQueryable`1,它具有 的类型参数,并且其中每个元素都表示对一个组及其键的投影。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 用于将每个源元素映射到 中的元素的函数。 + 用于从每个组中创建结果值的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + 每个 中的元素的类型。 + + 返回的结果值的类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。通过使用指定的比较器对键进行比较,并且通过使用指定的函数对每个组的元素进行投影。 + 一个 T:System.Linq.IQueryable`1,它具有 的类型参数,并且其中每个元素都表示对一个组及其键的投影。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 用于将每个源元素映射到 中的元素的函数。 + 用于从每个组中创建结果值的函数。 + 一个用于对键进行比较的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + 每个 中的元素的类型。 + + 返回的结果值的类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。 + 一个 T:System.Linq.IQueryable`1,它具有 的类型参数,并且其中每个元素都表示对一个组及其键的投影。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 用于从每个组中创建结果值的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 返回的结果值的类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。通过使用指定的比较器对键进行比较。 + 一个 T:System.Linq.IQueryable`1,它具有 的类型参数,并且其中每个元素都表示对一个组及其键的投影。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 用于从每个组中创建结果值的函数。 + 一个用于对键进行比较的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 返回的结果值的类型。 + + 为 null。 + + + 基于键相等对两个序列的元素进行关联并对结果进行分组。使用默认的相等比较器对键进行比较。 + 一个 ,包含通过对两个序列执行已分组的联接而获得的 类型的元素。 + 要联接的第一个序列。 + 要与第一个序列联接的序列。 + 用于从第一个序列的每个元素提取联接键的函数。 + 用于从第二个序列的每个元素提取联接键的函数。 + 用于从第一个序列的元素和第二个序列的匹配元素集合中创建结果元素的函数。 + 第一个序列中的元素的类型。 + 第二个序列中的元素的类型。 + 键选择器函数返回的键的类型。 + 结果元素的类型。 + + 为 null。 + + + 基于键相等对两个序列的元素进行关联并对结果进行分组。使用指定的 对键进行比较。 + 一个 ,包含通过对两个序列执行已分组的联接而获得的 类型的元素。 + 要联接的第一个序列。 + 要与第一个序列联接的序列。 + 用于从第一个序列的每个元素提取联接键的函数。 + 用于从第二个序列的每个元素提取联接键的函数。 + 用于从第一个序列的元素和第二个序列的匹配元素集合中创建结果元素的函数。 + 用于对键进行哈希处理和比较的比较器。 + 第一个序列中的元素的类型。 + 第二个序列中的元素的类型。 + 键选择器函数返回的键的类型。 + 结果元素的类型。 + + 为 null。 + + + 通过使用默认的相等比较器对值进行比较生成两个序列的交集。 + 一个包含两个序列的交集的序列。 + 一个序列,将返回其也出现在 中的非重复元素。 + 一个序列,将返回其也在第一个序列中出现的非重复元素。 + 输入序列中的元素的类型。 + + 为 null。 + + + 通过使用指定的 对值进行比较以生成两个序列的交集。 + 一个 ,它包含两个序列的交集。 + 一个 ,将返回其也出现在 中的非重复元素。 + 一个 ,将返回其也出现在第一个序列中的非重复元素。 + 用于比较值的 。 + 输入序列中的元素的类型。 + + 为 null。 + + + 基于匹配键对两个序列的元素进行关联。使用默认的相等比较器对键进行比较。 + 一个 ,具有通过对两个序列执行内部联接而获得的 类型的元素。 + 要联接的第一个序列。 + 要与第一个序列联接的序列。 + 用于从第一个序列的每个元素提取联接键的函数。 + 用于从第二个序列的每个元素提取联接键的函数。 + 用于从两个匹配元素创建结果元素的函数。 + 第一个序列中的元素的类型。 + 第二个序列中的元素的类型。 + 键选择器函数返回的键的类型。 + 结果元素的类型。 + + 为 null。 + + + 基于匹配键对两个序列的元素进行关联。使用指定的 对键进行比较。 + 一个 ,具有通过对两个序列执行内部联接而获得的 类型的元素。 + 要联接的第一个序列。 + 要与第一个序列联接的序列。 + 用于从第一个序列的每个元素提取联接键的函数。 + 用于从第二个序列的每个元素提取联接键的函数。 + 用于从两个匹配元素创建结果元素的函数。 + 一个 ,用于对键进行哈希处理和比较。 + 第一个序列中的元素的类型。 + 第二个序列中的元素的类型。 + 键选择器函数返回的键的类型。 + 结果元素的类型。 + + 为 null。 + + + 返回序列中的最后一个元素。 + 位于 中最后位置处的值。 + 要返回其最后一个元素的 。 + + 中的元素的类型。 + + 为 null。 + 源序列为空。 + + + 返回序列中满足指定条件的最后一个元素。 + + 中的最后一个元素,它通过了由 指定的测试。 + 要从中返回元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + 没有元素满足 中的条件。- 或 -源序列为空。 + + + 返回序列中的最后一个元素,如果序列中不包含任何元素,则返回默认值。 + 如果 为空,则返回 default();否则返回 中的最后一个元素。 + 要返回其最后一个元素的 。 + + 中的元素的类型。 + + 为 null。 + + + 返回序列中满足条件的最后一个元素;如果未找到这样的元素,则返回默认值。 + 如果 为空或没有元素通过谓词函数中的测试,则返回 default();否则,返回通过谓词函数中测试的 的最后一个元素。 + 要从中返回元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 返回一个 ,表示序列中的元素的总数量。 + + 中的元素的数量。 + 包含要进行计数的元素的 。 + + 中的元素的类型。 + + 为 null。 + 元素的数量超过 + + + 返回一个 ,它表示序列中满足条件的元素数量。 + + 中满足谓词函数的条件的元素数量。 + 包含要进行计数的元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + 匹配元素的数量超过 + + + 返回泛型 中的最大值。 + 序列中的最大值。 + 要确定最大值的值序列。 + + 中的元素的类型。 + + 为 null。 + + + 对泛型 的每个元素调用投影函数,并返回最大结果值。 + 序列中的最大值。 + 要确定最大值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数返回的值类型。 + + 为 null。 + + + 返回泛型 中的最小值。 + 序列中的最小值。 + 要确定最小值的值序列。 + + 中的元素的类型。 + + 为 null。 + + + 对泛型 的每个元素调用投影函数,并返回最小结果值。 + 序列中的最小值。 + 要确定最小值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数返回的值类型。 + + 为 null。 + + + 根据指定类型筛选 的元素。 + 一个集合,包含 中的类型为 的元素。 + 要对其元素进行筛选的 。 + 筛选序列元素所根据的类型。 + + 为 null。 + + + 根据键按升序对序列的元素排序。 + 一个 ,根据键对其元素排序。 + 一个要排序的值序列。 + 用于从元素中提取键的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 使用指定的比较器按升序对序列的元素排序。 + 一个 ,根据键对其元素排序。 + 一个要排序的值序列。 + 用于从元素中提取键的函数。 + 一个用于比较键的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 根据键按降序对序列的元素排序。 + 一个 ,将根据键按降序对其元素进行排序。 + 一个要排序的值序列。 + 用于从元素中提取键的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 使用指定的比较器按降序对序列的元素排序。 + 一个 ,将根据键按降序对其元素进行排序。 + 一个要排序的值序列。 + 用于从元素中提取键的函数。 + 一个用于比较键的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 反转序列中元素的顺序。 + 一个 ,其元素以相反顺序对应于输入序列的元素。 + 要反转的值序列。 + + 中的元素的类型。 + + 为 null。 + + + 将序列中的每个元素投影到新表中。 + 一个 ,其元素为对 的每个元素调用投影函数的结果。 + 一个要投影的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数返回的值类型。 + + 为 null。 + + + 通过合并元素的索引将序列的每个元素投影到新表中。 + 一个 ,其元素为对 的每个元素调用投影函数的结果。 + 一个要投影的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数返回的值类型。 + + 为 null。 + + + 将序列的每个元素投影到一个 ,并对其中的每个元素调用结果选择器函数。每个中间序列的结果值都组合为一个一维序列,并将其返回。 + 一个 ,其元素是通过对 的每个元素调用一对多投影函数 ,然后将这些序列元素的每一个及其对应的 元素映射到结果元素中的结果。 + 一个要投影的值序列。 + 一个应用于输入序列的每个元素的投影函数。 + 一个应用于每个中间序列的每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数收集的中间元素类型。 + 结果序列的元素的类型。 + + 为 null。 + + + 将序列的每个元素投影到一个 ,并将结果序列组合为一个序列。 + 一个 ,其元素是对输入序列的每个元素调用一对多投影函数的结果。 + 一个要投影的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数返回的序列中的元素的类型。 + + 为 null。 + + + 将序列中的每个元素投影到一个 ,它合并了生成它的源元素的索引。对每个中间序列的每个元素调用结果选择器函数,并且将结果值合并为一个一维序列,并将其返回。 + 一个 ,其元素是通过对 的每个元素调用一对多投影函数 ,然后将这些序列元素的每一个及其对应的 元素映射到结果元素中的结果。 + 一个要投影的值序列。 + 要应用于输入序列的每个元素的投影函数;此函数的第二个参数表示源元素的索引。 + 一个应用于每个中间序列的每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数收集的中间元素类型。 + 结果序列的元素的类型。 + + 为 null。 + + + 将序列的每个元素投影到一个 ,并将结果序列组合为一个序列。每个源元素的索引用于该元素的投影表。 + 一个 ,其元素是对输入序列的每个元素调用一对多投影函数的结果。 + 一个要投影的值序列。 + 要应用于每个元素的投影函数;此函数的第二个参数表示源元素的索引。 + + 中的元素的类型。 + 表示的函数返回的序列中的元素的类型。 + + 为 null。 + + + 通过使用默认的相等比较器比较元素以确定两个序列是否相等。 + 如果两个源序列的长度相等并且它们的对应元素也相等,则为 true;否则为 false。 + 一个 ,其元素用于与 中的元素进行比较。 + 一个 ,其元素用于与第一个序列中的元素进行比较。 + 输入序列中的元素的类型。 + + 为 null。 + + + 通过使用指定的 比较元素以确定两个序列是否相等。 + 如果两个源序列的长度相等并且它们的对应元素也相等,则为 true;否则为 false。 + 一个 ,其元素用于与 中的元素进行比较。 + 一个 ,其元素用于与第一个序列中的元素进行比较。 + 一个用于比较元素的 。 + 输入序列中的元素的类型。 + + 为 null。 + + + 返回序列的唯一元素;如果该序列并非恰好包含一个元素,则会引发异常。 + 输入序列的单个元素。 + 要返回其单个元素的 。 + + 中的元素的类型。 + + 为 null。 + + 具有多个元素。 + + + 返回序列中满足指定条件的唯一元素;如果有多个这样的元素存在,则会引发异常。 + 满足 中条件的输入序列中的单个元素。 + 要从中返回单个元素的 。 + 用于测试元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + 没有元素满足 中的条件。- 或 -多个元素满足 中的条件。- 或 -源序列为空。 + + + 返回序列中的唯一元素;如果该序列为空,则返回默认值;如果该序列包含多个元素,此方法将引发异常。 + 返回输入序列的单个元素;如果序列不包含任何元素,则返回 default()。 + 要返回其单个元素的 。 + + 中的元素的类型。 + + 为 null。 + + 具有多个元素。 + + + 返回序列中满足指定条件的唯一元素;如果这类元素不存在,则返回默认值;如果有多个元素满足该条件,此方法将引发异常。 + 返回满足 中条件的输入序列的单个元素;如果未找到这样的元素,则返回 default()。 + 要从中返回单个元素的 。 + 用于测试元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + 多个元素满足 中的条件。 + + + 跳过序列中指定数量的元素,然后返回剩余的元素。 + 一个 ,包含输入序列中指定索引后出现的元素。 + 要从中返回元素的 。 + 返回剩余元素前要跳过的元素数量。 + + 中的元素的类型。 + + 为 null。 + + + 只要满足指定的条件,就跳过序列中的元素,然后返回剩余元素。 + 一个 ,包含从未通过 指定测试的线性系列中的第一个元素开始的 中的元素。 + 要从中返回元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 只要满足指定的条件,就跳过序列中的元素,然后返回剩余元素。将在谓词函数的逻辑中使用元素的索引。 + 一个 ,包含从未通过 指定测试的线性系列中的第一个元素开始的 中的元素。 + 要从中返回元素的 。 + 用于测试每个元素是否满足条件的函数;此函数的第二个参数表示源元素的索引。 + + 中的元素的类型。 + + 为 null。 + + + 计算 值序列之和。 + 序列值之和。 + 一个要计算和的 值序列。 + + 为 null。 + 和大于 + + + 计算 值序列之和。 + 序列值之和。 + 一个要计算和的 值序列。 + + 为 null。 + + + 计算 值序列之和。 + 序列值之和。 + 一个要计算和的 值序列。 + + 为 null。 + 和大于 + + + 计算 值序列之和。 + 序列值之和。 + 一个要计算和的 值序列。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和。 + 序列值之和。 + 要计算和的可以为 null 的 值序列。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和。 + 序列值之和。 + 要计算和的可以为 null 的 值序列。 + + 为 null。 + + + 计算可以为 null 的 值序列之和。 + 序列值之和。 + 要计算和的可以为 null 的 值序列。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和。 + 序列值之和。 + 要计算和的可以为 null 的 值序列。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和。 + 序列值之和。 + 要计算和的可以为 null 的 值序列。 + + 为 null。 + + + 计算 值序列之和。 + 序列值之和。 + 一个要计算和的 值序列。 + + 为 null。 + + + 计算 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + 和大于 + + + 计算 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + 和大于 + + + 计算 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算可以为 null 的 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 从序列的开头返回指定数量的连续元素。 + 一个 ,包含从 开始处的指定数量的元素。 + 要从其返回元素的序列。 + 要返回的元素数量。 + + 中的元素的类型。 + + 为 null。 + + + 只要满足指定的条件,就会返回序列的元素。 + 一个 ,包含不再通过由 指定测试的元素之前出现的输入序列中的元素。 + 要从其返回元素的序列。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 只要满足指定的条件,就会返回序列的元素。将在谓词函数的逻辑中使用元素的索引。 + 一个 ,包含不再通过由 指定测试的元素之前出现的输入序列中的元素。 + 要从其返回元素的序列。 + 用于测试每个元素是否满足条件的函数;此函数的第二个参数表示源序列中元素的索引。 + + 中的元素的类型。 + + 为 null。 + + + 根据某个键按升序对序列中的元素执行后续排序。 + 一个 ,根据键对其元素排序。 + 一个 ,包含要排序的元素。 + 用于从每个元素中提取键的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 使用指定的比较器按升序对序列中的元素执行后续排序。 + 一个 ,根据键对其元素排序。 + 一个 ,包含要排序的元素。 + 用于从每个元素中提取键的函数。 + 一个用于比较键的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 根据某个键按降序对序列中的元素执行后续排序。 + 一个 ,将根据键按降序对其元素进行排序。 + 一个 ,包含要排序的元素。 + 用于从每个元素中提取键的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 使用指定的比较器按降序对序列中的元素执行后续排序。 + 一个集合,其中的元素是根据某个键按降序进行排序的。 + 一个 ,包含要排序的元素。 + 用于从每个元素中提取键的函数。 + 一个用于比较键的 。 + + 中的元素的类型。 + 函数返回的键的类型。 + + 为 null。 + + + 通过使用默认的相等比较器生成两个序列的并集。 + 一个 ,包含两个输入序列中的元素(重复元素除外)。 + 非重复元素组成合并运算的第一组的一个序列。 + 非重复元素组成合并运算的第二组的一个序列。 + 输入序列中的元素的类型。 + + 为 null。 + + + 通过使用指定的 生成两个序列的并集。 + 一个 ,包含两个输入序列中的元素(重复元素除外)。 + 非重复元素组成合并运算的第一组的一个序列。 + 非重复元素组成合并运算的第二组的一个序列。 + 用于比较值的 。 + 输入序列中的元素的类型。 + + 为 null。 + + + 基于谓词筛选值序列。 + 一个 ,包含满足由 指定的条件的输入序列中的元素。 + 要筛选的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 基于谓词筛选值序列。将在谓词函数的逻辑中使用每个元素的索引。 + 一个 ,包含满足由 指定的条件的输入序列中的元素。 + 要筛选的 。 + 用于测试每个元素是否满足条件的函数;此函数的第二个参数表示源序列中元素的索引。 + + 中的元素的类型。 + + 为 null。 + + + 通过使用指定的谓词函数合并两个序列。 + 一个 ,包含两个输入序列的已合并元素。 + 要合并的第一个序列。 + 要合并的第二个序列。 + 用于指定如何合并这两个序列的元素的函数。 + 第一个输入序列中的元素的类型。 + 第二个输入序列中的元素的类型。 + 结果序列的元素的类型。 + + 为 null。 + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netcore50/zh-hant/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/zh-hant/System.Linq.Queryable.xml new file mode 100644 index 0000000..2dd62e2 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netcore50/zh-hant/System.Linq.Queryable.xml @@ -0,0 +1,1439 @@ + + + + System.Linq.Queryable + + + + 表示運算式樹狀架構,並且提供在重新撰寫後執行運算式樹狀架構的功能。 + + + 初始化 類別的新執行個體。 + + + 表示運算式樹狀架構,並且提供在重新撰寫後執行運算式樹狀架構的功能。 + 執行運算式樹狀架構所產生之值的資料型別。 + + + 初始化 類別的新執行個體。 + 與新執行個體關聯的運算式樹狀架構。 + + + 表示做為 資料來源的 + + + 初始化 類別的新執行個體。 + + + 表示做為 資料來源的 集合。 + 集合中的資料型別。 + + + 初始化 類別的新執行個體,並使其與 集合產生關聯。 + 與新執行個體關聯的集合。 + + + 初始化 類別的新執行個體,並使其與運算式樹狀架構產生關聯。 + 與新執行個體關聯的運算式樹狀架構。 + + + 傳回可以逐一查看關聯之 集合的列舉值,或者如果為 null,則逐一查看重新寫入運算式樹狀架構所產生的集合,做為 資料來源上的查詢並且執行。 + 可以用來逐一查看關聯之資料來源的列舉值。 + + + 傳回可以逐一查看關聯之 集合的列舉值,或者如果為 null,則逐一查看重新寫入運算式樹狀架構所產生的集合,做為 資料來源上的查詢並且執行。 + 可以用來逐一查看關聯之資料來源的列舉值。 + + + 取得此執行個體所代表之集合中的資料型別。 + 此執行個體所代表之集合中的資料型別。 + + + 取得與此執行個體關聯的或代表此執行個體的運算式樹狀架構。 + 與此執行個體關聯的或代表此執行個體的運算式樹狀架構。 + + + 取得與這個執行個體關聯的查詢提供者。 + 與這個執行個體關聯的查詢提供者。 + + + 建構新的 物件,並將其與指定的運算式樹狀架構 (表示資料的 集合) 建立關聯。 + 表示與 關聯的 EnumerableQuery 物件。 + 要執行的運算式樹狀架構。 + 所代表之集合中的資料型別。 + + + 建構新的 物件,並將其與指定的運算式樹狀架構 (表示資料的 集合) 建立關聯。 + 相關聯的 物件。 + 表示資料之 集合的運算式樹狀架構。 + + + 在無法以 方法查詢的可列舉資料來源上,將重新寫入運算式以呼叫 方法後,執行運算式,而不使用 方法。 + 執行 所產生的值。 + 要執行的運算式樹狀架構。 + 所代表之集合中的資料型別。 + + + 在無法以 方法查詢的可列舉資料來源上,將重新寫入運算式以呼叫 方法後,執行運算式,而不使用 方法。 + 執行 所產生的值。 + 要執行的運算式樹狀架構。 + + + 傳回可列舉集合的文字表示,如果為 null,則傳回與該執行個體關聯的運算式樹狀架構的文字表示。 + 可列舉集合的文字表示,如果為 null,則為與該執行個體關聯的運算式樹狀架構的文字表示。 + + + 提供一組 static (在 Visual Basic 中為 Shared) 方法,用於查詢實作 的資料結構。 + + + 將累加函式套用到序列上。 + 最終累積值。 + 所要彙總的序列。 + 要套用到每個項目的累加函式。 + + 之項目的型別。 + + 為 null。 + + 沒有包含任何項目。 + + + 將累加函式套用到序列上。使用指定的初始值做為初始累加值。 + 最終累積值。 + 所要彙總的序列。 + 初始累積值。 + 要在每個項目上叫用的累加函式。 + + 之項目的型別。 + 累積值的型別。 + + 為 null。 + + + 將累加函式套用到序列上。使用指定的值做為初始累加值,並使用指定的函式來選取結果值。 + 轉換後的最終累加值。 + 所要彙總的序列。 + 初始累積值。 + 要在每個項目上叫用的累加函式。 + 用來將最終累加值轉換成結果值的函式。 + + 之項目的型別。 + 累積值的型別。 + 結果值的型別。 + + 為 null。 + + + 判斷序列的所有項目是否全都符合條件。 + 如果來源序列的每個項目都通過以指定之述詞 (Predicate) 進行的測試,或序列是空的,則為 true,否則為 false。 + 要測試其項目是否符合條件的序列。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 判斷序列是否包含任何項目。 + 如果來源序列包含任何項目,則為 true,否則為 false。 + 要檢查是否為空白的序列。 + + 之項目的型別。 + + 為 null。 + + + 判斷序列的任何項目是否符合條件。 + 如果來源序列中的任何項目通過以指定之述詞進行的測試,則為 true,否則為 false。 + 要測試其項目是否符合條件的序列。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 將泛型 轉換成泛型 + 代表輸入序列的 + 所要轉換的序列。 + + 之項目的型別。 + + 為 null。 + + + 轉換成 + 代表輸入序列的 + 所要轉換的序列。 + + 不會針對某些 實作 + + 為 null。 + + + 計算 值序列的平均值。 + 值序列的平均。 + 要計算平均值的 值序列。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算 值序列的平均值。 + 值序列的平均。 + 要計算平均值的 值序列。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算 值序列的平均值。 + 值序列的平均。 + 要計算平均值的 值序列。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算 值序列的平均值。 + 值序列的平均。 + 要計算平均值的 值序列。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算可為 Null 之 值序列的平均值。 + 值序列的平均值;如果來源序列是空的或是只包含 null 值,則為 null。 + 要計算平均值之可為 Null 的 值序列。 + + 為 null。 + + + 計算可為 Null 之 值序列的平均值。 + 值序列的平均值;如果來源序列是空的或是只包含 null 值,則為 null。 + 要計算平均值之可為 Null 的 值序列。 + + 為 null。 + + + 計算可為 Null 之 值序列的平均值。 + 值序列的平均值;如果來源序列是空的或是只包含 null 值,則為 null。 + 要計算平均值之可為 Null 的 值序列。 + + 為 null。 + + + 計算可為 Null 之 值序列的平均值。 + 值序列的平均值;如果來源序列是空的或是只包含 null 值,則為 null。 + 要計算平均值之可為 Null 的 值序列。 + + 為 null。 + + + 計算可為 Null 之 值序列的平均值。 + 值序列的平均值;如果來源序列是空的或是只包含 null 值,則為 null。 + 要計算平均值之可為 Null 的 值序列。 + + 為 null。 + + + 計算 值序列的平均值。 + 值序列的平均。 + 要計算平均值的 值序列。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的平均值。 + 值序列的平均。 + 用來計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的平均值。 + 值序列的平均。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的平均值。 + 值序列的平均。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的平均值。 + 值序列的平均。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的平均值。 + 值序列的平均值;如果 序列是空的或是只包含 null 值,則為 null。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的平均值。 + 值序列的平均值;如果 序列是空的或是只包含 null 值,則為 null。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的平均值。 + 值序列的平均值;如果 序列是空的或是只包含 null 值,則為 null。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的平均值。 + 值序列的平均值;如果 序列是空的或是只包含 null 值,則為 null。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的平均值。 + 值序列的平均值;如果 序列是空的或是只包含 null 值,則為 null。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的平均值。 + 值序列的平均。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + 沒有包含任何項目。 + + + 的項目轉換成指定的型別。 + + ,其中包含已轉換成指定之型別的每個來源序列項目。 + 包含要轉換之項目的 。 + 要將 之項目轉換成的型別。 + + 為 null。 + 無法將序列中的項目轉換為型別 + + + 串連兩個序列。 + + ,其中包含兩個輸入序列的串連項目。 + 要串連的第一個序列。 + 要串連到第一個序列的序列。 + 輸入序列的項目之型別。 + + 為 null。 + + + 使用預設的相等比較子 (Comparer) 來判斷序列是否包含指定的項目。 + 如果輸入序列包含具有指定值的項目,則為 true,否則為 false。 + 要在其中尋找 。 + 要在序列中尋找的物件。 + + 之項目的型別。 + + 為 null。 + + + 使用指定的 來判斷序列是否包含指定的項目。 + 如果輸入序列包含具有指定值的項目,則為 true,否則為 false。 + 要在其中尋找 。 + 要在序列中尋找的物件。 + 用來比較值的 。 + + 之項目的型別。 + + 為 null。 + + + 傳回序列中的項目數。 + 輸入序列中的項目數目。 + 包含要計算之項目的 。 + + 之項目的型別。 + + 為 null。 + + 中的項目數目大於 + + + 傳回指定之序列中符合條件的項目數目。 + 序列中符合述詞函式之條件的項目數目。 + 包含要計算之項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + 中的項目數目大於 + + + 傳回指定之序列的項目;如果序列是空的,則傳回單一集合中型別參數的預設值。 + 如果 是空的,則為包含 default() 的 ,否則為 + 在空白時,要傳回預設值的 。 + + 之項目的型別。 + + 為 null。 + + + 傳回指定之序列的項目;如果序列是空的,則傳回單一集合中型別參數的預設值。 + 如果 是空的,則為包含 ,否則為 + 在空白時,要傳回指定之值的 。 + 在序列空白時所要傳回的值。 + + 之項目的型別。 + + 為 null。 + + + 使用預設的相等比較子來比較值,以便從序列傳回獨特的項目。 + + ,其中包含來自 的獨特項目。 + 要從中移除重複項目的 。 + + 之項目的型別。 + + 為 null。 + + + 使用指定的 來比較值,以便從序列傳回獨特的項目。 + + ,其中包含來自 的獨特項目。 + 要從中移除重複項目的 。 + 用來比較值的 。 + + 之項目的型別。 + + 為 null。 + + + 傳回位於序列中指定索引處的項目。 + 位於 中指定之位置的項目。 + 傳回項目的 。 + 要擷取的項目之以零起始索引。 + + 之項目的型別。 + + 為 null。 + + 小於零。 + + + 傳回位於序列中指定索引處的項目;如果索引超出範圍,則傳回預設值。 + 如果 超出 的範圍,則為 default(),否則為位於 中指定索引處的項目。 + 傳回項目的 。 + 要擷取的項目之以零起始索引。 + + 之項目的型別。 + + 為 null。 + + + 使用預設相等比較子來比較值,以便產生兩個序列的差異。 + + ,其中包含兩個序列的差異。 + + ,其項目若未同時存在 中,便會傳回這些項目。 + + ,其項目若同時出現在第一個序列中,則不會出現在傳回的序列中。 + 輸入序列的項目之型別。 + + 為 null。 + + + 使用指定的 來比較值,以便產生兩個序列的差異。 + + ,其中包含兩個序列的差異。 + + ,其項目若未同時存在 中,便會傳回這些項目。 + + ,其項目若同時出現在第一個序列中,則不會出現在傳回的序列中。 + 用來比較值的 。 + 輸入序列的項目之型別。 + + 為 null。 + + + 傳回序列的第一個項目。 + + 中的第一個項目。 + 要傳回第一個項目的 。 + + 之項目的型別。 + + 為 null。 + 來源序列為空。 + + + 傳回序列中符合指定之條件的第一個項目。 + + 中通過 之測試的第一個項目。 + 傳回項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + 沒有任何項目符合 中的條件。-或-來源序列為空。 + + + 傳回序列的第一個項目;如果序列中沒有包含任何項目,則傳回預設值。 + 如果 是空的,則為 default(),否則為 中的第一個項目。 + 要傳回第一個項目的 。 + + 之項目的型別。 + + 為 null。 + + + 傳回序列中符合指定之條件的第一個項目;如果找不到這類項目,則傳回預設值。 + 如果 是空的,或是沒有任何項目通過 所指定的測試,則為 default(),否則為 中通過 指定之測試的第一個項目。 + 傳回項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 依據指定的索引鍵選擇器函式來群組序列的項目。 + 在 C# 中為 IQueryable<IGrouping<TKey, TSource>>,而在 Visual Basic 中則為 IQueryable(Of IGrouping(Of TKey, TSource)),其中 物件包含物件和索引鍵的序列。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 依據指定的索引鍵選取器函式來群組序列的項目,並使用指定的比較子來比較索引鍵。 + 在 C# 中為 IQueryable<IGrouping<TKey, TSource>>,而在 Visual Basic 中則為 IQueryable(Of IGrouping(Of TKey, TSource)),其中 包含物件和索引鍵的序列。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 依據指定的索引鍵選取器函式來群組序列的項目,並使用指定的函式來投影每個群組的項目。 + 在 C# 中為 IQueryable<IGrouping<TKey, TElement>>,而在 Visual Basic 中則為 IQueryable(Of IGrouping(Of TKey, TElement)),其中每個 都包含型別 之物件的序列和索引鍵。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來將每個來源項目對應至 之項目的函式。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + 每個 中的項目型別。 + + 為 null。 + + + 使用指定的函式來群組序列的項目並投影每個群組的項目。索引鍵值是使用指定的比較子來進行比較。 + 在 C# 中為 IQueryable<IGrouping<TKey, TElement>>,而在 Visual Basic 中則為 IQueryable(Of IGrouping(Of TKey, TElement)),其中每個 都包含型別 之物件的序列和索引鍵。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來將每個來源項目對應至 之項目的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + 每個 中的項目型別。 + + 為 null。 + + + 依據指定的索引鍵選取器函式來群組序列的項目,並從每個群組及其索引鍵建立結果值。每個群組的項目都是利用指定的函式進行投影。 + T:System.Linq.IQueryable`1,其具有 的型別引數,而且其中每個項目都代表群組及其索引鍵的投影。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來將每個來源項目對應至 之項目的函式。 + 用來從各個群組建立結果值的函式。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + 每個 中的項目型別。 + + 所傳回之結果值的型別。 + + 為 null。 + + + 依據指定的索引鍵選取器函式來群組序列的項目,並從每個群組及其索引鍵建立結果值。索引鍵是使用指定的比較子來進行比較,而每個群組的項目則都是利用指定的函式進行投影。 + T:System.Linq.IQueryable`1,其具有 的型別引數,而且其中每個項目都代表群組及其索引鍵的投影。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來將每個來源項目對應至 之項目的函式。 + 用來從各個群組建立結果值的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + 每個 中的項目型別。 + + 所傳回之結果值的型別。 + + 為 null。 + + + 依據指定的索引鍵選取器函式來群組序列的項目,並從每個群組及其索引鍵建立結果值。 + T:System.Linq.IQueryable`1,其具有 的型別引數,而且其中每個項目都代表群組及其索引鍵的投影。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來從各個群組建立結果值的函式。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + + 所傳回之結果值的型別。 + + 為 null。 + + + 依據指定的索引鍵選取器函式來群組序列的項目,並從每個群組及其索引鍵建立結果值。索引鍵是使用指定的比較子來進行比較。 + T:System.Linq.IQueryable`1,其具有 的型別引數,而且其中每個項目都代表群組及其索引鍵的投影。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來從各個群組建立結果值的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + + 所傳回之結果值的型別。 + + 為 null。 + + + 根據索引鍵相等與否,將兩個序列的項目相互關聯,並群組產生的結果。預設的相等比較子是用於比較索引鍵。 + + ,其中包含透過對兩個序列執行群組聯結所取得之型別 的項目。 + 要聯結的第一個序列。 + 要加入第一個序列的序列。 + 用來從第一個序列各個項目擷取聯結索引鍵的函式。 + 用來從第二個序列各個項目擷取聯結索引鍵的函式。 + 函式,用來從第一個序列的項目以及第二個序列的相符項目集合建立結果項目。 + 第一個序列的項目之型別。 + 第二個序列的項目之型別。 + 索引鍵選取器函式所傳回的索引鍵之型別。 + 結果項目的型別。 + + 為 null。 + + + 根據索引鍵相等與否,將兩個序列的項目相互關聯,並群組產生的結果。指定的 是用於比較索引鍵。 + + ,其中包含透過對兩個序列執行群組聯結所取得之型別 的項目。 + 要聯結的第一個序列。 + 要加入第一個序列的序列。 + 用來從第一個序列各個項目擷取聯結索引鍵的函式。 + 用來從第二個序列各個項目擷取聯結索引鍵的函式。 + 函式,用來從第一個序列的項目以及第二個序列的相符項目集合建立結果項目。 + 用來雜湊及比較索引鍵的比較子。 + 第一個序列的項目之型別。 + 第二個序列的項目之型別。 + 索引鍵選取器函式所傳回的索引鍵之型別。 + 結果項目的型別。 + + 為 null。 + + + 使用預設相等比較子來比較值,以便產生兩個序列的交集。 + 包含兩個序列之交集的序列。 + 傳回其獨特項目同時出現在 中的序列。 + 傳回其獨特項目同時出現在第一個序列中的序列。 + 輸入序列的項目之型別。 + + 為 null。 + + + 使用指定的 來比較值,以便產生兩個序列的交集。 + + ,其中包含兩個序列的交集。 + 傳回其獨特項目同時出現在 中的 。 + 傳回其獨特項目同時出現在第一個序列中的 。 + 用來比較值的 。 + 輸入序列的項目之型別。 + + 為 null。 + + + 根據相符索引鍵,將兩個序列的項目相互關聯。預設的相等比較子是用於比較索引鍵。 + + ,其具有透過對兩個序列執行內部聯結所取得之型別 的項目。 + 要聯結的第一個序列。 + 要加入第一個序列的序列。 + 用來從第一個序列各個項目擷取聯結索引鍵的函式。 + 用來從第二個序列各個項目擷取聯結索引鍵的函式。 + 用來從兩個相符項目建立結果項目的函式。 + 第一個序列的項目之型別。 + 第二個序列的項目之型別。 + 索引鍵選取器函式所傳回的索引鍵之型別。 + 結果項目的型別。 + + 為 null。 + + + 根據相符索引鍵,將兩個序列的項目相互關聯。指定的 是用於比較索引鍵。 + + ,其具有透過對兩個序列執行內部聯結所取得之型別 的項目。 + 要聯結的第一個序列。 + 要加入第一個序列的序列。 + 用來從第一個序列各個項目擷取聯結索引鍵的函式。 + 用來從第二個序列各個項目擷取聯結索引鍵的函式。 + 用來從兩個相符項目建立結果項目的函式。 + 用來雜湊及比較索引鍵的 。 + 第一個序列的項目之型別。 + 第二個序列的項目之型別。 + 索引鍵選取器函式所傳回的索引鍵之型別。 + 結果項目的型別。 + + 為 null。 + + + 傳回序列中的最後一個項目。 + 位於 中最後一個位置的值。 + 要傳回最後一個項目的 。 + + 之項目的型別。 + + 為 null。 + 來源序列為空。 + + + 傳回序列中符合指定之條件的最後一個項目。 + + 中通過 指定之測試的最後一個項目。 + 傳回項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + 沒有任何項目符合 中的條件。-或-來源序列為空。 + + + 傳回序列中的最後一個項目;如果序列中沒有包含任何項目,則傳回預設值。 + 如果 是空的,則為 default(),否則為 中的最後一個項目。 + 要傳回最後一個項目的 。 + + 之項目的型別。 + + 為 null。 + + + 傳回序列中符合條件的最後一個項目;如果找不到這類項目,則傳回預設值。 + 如果 是空的,或是沒有任何項目通過述詞函式中的測試,則為 default(),否則為 中通過述詞函式之測試的最後一個項目。 + 傳回項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 傳回代表序列中項目總數的 + + 中的項目數目。 + 包含要計算之項目的 。 + + 之項目的型別。 + + 為 null。 + 項目數目超出 + + + 傳回 ,其代表序列中符合條件的項目數目。 + + 中符合述詞函式之條件的項目數目。 + 包含要計算之項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + 符合的項目數目超出 + + + 傳回泛型 中的最大值。 + 序列中的最大值。 + 要判斷最大值的值序列。 + + 之項目的型別。 + + 為 null。 + + + 對泛型 的每個項目叫用投影函式,並傳回最大的結果值。 + 序列中的最大值。 + 要判斷最大值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所傳回值的型別。 + + 為 null。 + + + 傳回泛型 的最小值。 + 序列中的最小值。 + 要判斷最小值的值序列。 + + 之項目的型別。 + + 為 null。 + + + 對泛型 的每個項目叫用投影函式,並傳回最小的結果值。 + 序列中的最小值。 + 要判斷最小值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所傳回值的型別。 + + 為 null。 + + + 根據指定的型別來篩選 的項目。 + 集合,其中包含 中型別為 的項目。 + 要篩選其項目的 。 + 用來做為序列項目之篩選依據的型別。 + + 為 null。 + + + 依據索引鍵,按遞增順序排序序列中的項目。 + 依據索引鍵排序其項目的 + 要排序的值序列。 + 用來從項目擷取索引鍵的函式。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 使用指定的比較子,依遞增順序排序序列中的項目。 + 依據索引鍵排序其項目的 + 要排序的值序列。 + 用來從項目擷取索引鍵的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 依據索引鍵,按遞減順序排序序列中的項目。 + 依據索引鍵按遞減順序排序其項目的 + 要排序的值序列。 + 用來從項目擷取索引鍵的函式。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 使用指定的比較子,依遞減順序排序序列中的項目。 + 依據索引鍵按遞減順序排序其項目的 + 要排序的值序列。 + 用來從項目擷取索引鍵的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 反轉序列中項目的排序方向。 + 其項目對應於輸入序列中反向排序之項目的 + 要反轉方向的值序列。 + + 之項目的型別。 + + 為 null。 + + + 將序列的每一個項目規劃成一個新的表單。 + + ,其項目為在 各個項目上叫用投影函式的結果。 + 要投影的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所傳回值的型別。 + + 為 null。 + + + 透過加入項目的索引,將序列的每個項目投影成新的表單。 + + ,其項目為在 各個項目上叫用投影函式的結果。 + 要投影的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所傳回值的型別。 + + 為 null。 + + + 將序列的每個項目投影成 ,並在其中的每個項目上叫用結果選取器函式。每個中繼序列產生的值都會合併成單一的一維序列,然後再傳回。 + + ,其項目是執行下列動作後所產生的結果:對 的各個項目叫用一對多投影函式 ,然後再將每個序列項目及其對應之 項目對應到結果項目。 + 要投影的值序列。 + 要套用到輸入序列中各個項目的投影函式。 + 要套用到各中繼序列之各個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所收集之中繼項目的型別。 + 產生的序列之項目型別。 + + 為 null。 + + + 將序列的每個項目都投影成 ,並將產生的序列合併成一個序列。 + + ,其項目是對輸入序列中各個項目叫用一對多投影函式後所產生的結果。 + 要投影的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所傳回序列之項目的型別。 + + 為 null。 + + + 將序列的每個項目都投影成 ,以合併產生該項目之來源項目的索引。接著對各中繼序列的每個項目叫用結果選取器函式,然後將產生的值合併成單一的一維序列並傳回。 + + ,其項目是執行下列動作後所產生的結果:對 的各個項目叫用一對多投影函式 ,然後再將每個序列項目及其對應之 項目對應到結果項目。 + 要投影的值序列。 + 要套用到輸入序列每個項目的投影函式;此函式的第二個參數代表來源項目的索引。 + 要套用到各中繼序列之各個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所收集之中繼項目的型別。 + 產生的序列之項目型別。 + + 為 null。 + + + 將序列的每個項目都投影成 ,並將產生的序列合併成一個序列。各來源項目的索引是在該項目的投影表單中使用。 + + ,其項目是對輸入序列中各個項目叫用一對多投影函式後所產生的結果。 + 要投影的值序列。 + 要套用到每個項目的投影函式;此函式的第二個參數代表來源項目的索引。 + + 之項目的型別。 + + 表示之函式所傳回序列之項目的型別。 + + 為 null。 + + + 使用預設相等比較子來比較項目,以判斷兩個序列是否相等。 + 如果兩個來源序列的長度相同,而且其對應項目比較結果相同,則為 true,否則為 false。 + + ,其項目要與 的項目比較。 + + ,其項目要與第一個序列的項目比較。 + 輸入序列的項目之型別。 + + 為 null。 + + + 使用指定的 來比較項目,以判斷兩個序列是否相等。 + 如果兩個來源序列的長度相同,而且其對應項目比較結果相同,則為 true,否則為 false。 + + ,其項目要與 的項目比較。 + + ,其項目要與第一個序列的項目比較。 + 用來比較項目的 。 + 輸入序列的項目之型別。 + + 為 null。 + + + 傳回序列的唯一一個項目,如果序列中不是正好一個項目,則擲回例外狀況。 + 輸入序列的單一項目。 + 要傳回單一項目的 。 + + 之項目的型別。 + + 為 null。 + + 具有多個項目。 + + + 傳回序列中符合指定之條件的唯一一個項目,如果有一個以上這類項目,則擲回例外狀況。 + 輸入序列中符合 之條件的單一項目。 + 要傳回單一項目的來源 。 + 用來測試項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + 沒有任何項目符合 中的條件。-或-超過一個項目符合 中的條件。-或-來源序列為空。 + + + 傳回序列的唯一一個項目,如果序列是空白,則為預設值,如果序列中有一個以上的項目,這個方法就會擲回例外狀況。 + 輸入序列的單一項目;如果序列沒有包含任何項目,則為 default()。 + 要傳回單一項目的 。 + + 之項目的型別。 + + 為 null。 + + 具有多個項目。 + + + 傳回序列中符合指定之條件的唯一一個項目,如果沒有這類項目,則為預設值,如果有一個以上的項目符合條件,這個方法就會擲回例外狀況。 + 輸入序列中符合 中條件的單一項目;如果找不到這類項目,則為 default()。 + 要傳回單一項目的來源 。 + 用來測試項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + 超過一個項目符合 中的條件。 + + + 略過序列中指定的項目數目,然後傳回其餘項目。 + + ,其中包含出現在輸入序列中指定之索引後面的項目。 + 傳回項目的 。 + 傳回其餘項目之前要略過的項目數目。 + + 之項目的型別。 + + 為 null。 + + + 只要指定的條件為 true,便略過序列中的項目,然後傳回其餘項目。 + + ,其中包含的項目位於 ,而且是從沒有通過 所指定之測試的線性系列中第一個項目開始。 + 傳回項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 只要指定的條件為 true,便略過序列中的項目,然後傳回其餘項目。項目的索引是用於述詞功能的邏輯中。 + + ,其中包含的項目位於 ,而且是從沒有通過 所指定之測試的線性系列中第一個項目開始。 + 傳回項目的 。 + 用來測試各項目是否符合條件的函式;此函式的第二個參數代表來源項目的索引。 + + 之項目的型別。 + + 是 null。 + + + 計算 值序列的總和。 + 序列中值的總合。 + 要計算總和的 值序列。 + + 為 null。 + 總和大於 + + + 計算 值序列的總和。 + 序列中值的總合。 + 要計算總和的 值序列。 + + 為 null。 + + + 計算 值序列的總和。 + 序列中值的總合。 + 要計算總和的 值序列。 + + 為 null。 + 總和大於 + + + 計算 值序列的總和。 + 序列中值的總合。 + 要計算總和的 值序列。 + + 為 null。 + 總和大於 + + + 計算可為 Null 之 值序列的總和。 + 序列中值的總合。 + 要計算總和之可為 Null 的 值序列。 + + 為 null。 + 總和大於 + + + 計算可為 Null 之 值序列的總和。 + 序列中值的總合。 + 要計算總和之可為 Null 的 值序列。 + + 為 null。 + + + 計算可為 Null 之 值序列的總和。 + 序列中值的總合。 + 要計算總和之可為 Null 的 值序列。 + + 為 null。 + 總和大於 + + + 計算可為 Null 之 值序列的總和。 + 序列中值的總合。 + 要計算總和之可為 Null 的 值序列。 + + 為 null。 + 總和大於 + + + 計算可為 Null 之 值序列的總和。 + 序列中值的總合。 + 要計算總和之可為 Null 的 值序列。 + + 為 null。 + + + 計算 值序列的總和。 + 序列中值的總合。 + 要計算總和的 值序列。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + 總和大於 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + 總和大於 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + 總和大於 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + 總和大於 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + 總和大於 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + 總和大於 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 從序列開頭傳回指定的連續項目數目。 + + ,其中包含來自 開頭的指定項目數目。 + 傳回項目的序列。 + 要傳回的項目數目。 + + 之項目的型別。 + + 為 null。 + + + 只要指定的條件為 true,就會傳回序列中的項目。 + + ,其中包含輸入序列中的項目,而這些項目出現在已無法通過 所指定之測試的項目前面。 + 傳回項目的序列。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 只要指定的條件為 true,就會傳回序列中的項目。項目的索引是用於述詞功能的邏輯中。 + + ,其中包含輸入序列中的項目,而這些項目出現在已無法通過 所指定之測試的項目前面。 + 傳回項目的序列。 + 用來測試各項目是否符合條件的函式;此函式的第二個參數代表來源序列中項目的索引。 + + 之項目的型別。 + + 是 null。 + + + 依據索引鍵,按遞增順序執行序列中項目的後續排序作業。 + 依據索引鍵排序其項目的 + 包含要排序之項目的 。 + 用來從各個項目擷取索引鍵的函式。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 使用指定的比較子,依遞增順序執行序列中項目的後續排序作業。 + 依據索引鍵排序其項目的 + 包含要排序之項目的 。 + 用來從各個項目擷取索引鍵的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 依據索引鍵,按遞減順序執行序列中項目的後續排序作業。 + 依據索引鍵按遞減順序排序其項目的 + 包含要排序之項目的 。 + 用來從各個項目擷取索引鍵的函式。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 使用指定的比較子,依遞減順序執行序列中項目的後續排序作業。 + 依據索引鍵按遞減順序排序其項目的集合。 + 包含要排序之項目的 。 + 用來從各個項目擷取索引鍵的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 函式所傳回索引鍵的型別。 + + 為 null。 + + + 使用預設相等比較值來比較值,以便產生兩個序列的集合等位。 + + ,其中包含來自兩個輸入序列的項目,但不包括重複的項目。 + 序列,其獨特項目構成等位作業的第一個集合。 + 序列,其獨特項目構成等位作業的第二個集合。 + 輸入序列的項目之型別。 + + 為 null。 + + + 使用指定的 產生兩個序列的集合等位。 + + ,其中包含來自兩個輸入序列的項目,但不包括重複的項目。 + 序列,其獨特項目構成等位作業的第一個集合。 + 序列,其獨特項目構成等位作業的第二個集合。 + 用來比較值的 。 + 輸入序列的項目之型別。 + + 為 null。 + + + 根據述詞來篩選值序列。 + + ,其中包含輸入序列中符合 指定之條件的項目。 + 要篩選的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 根據述詞來篩選值序列。述詞函式的邏輯中使用各項目的索引。 + + ,其中包含輸入序列中符合 指定之條件的項目。 + 要篩選的 。 + 用來測試各項目是否符合條件的函式;此函式的第二個參數代表來源序列中項目的索引。 + + 之項目的型別。 + + 是 null。 + + + 使用指定的述詞函式來合併兩個序列。 + + ,其中包含兩個輸入序列的合併項目。 + 要合併的第一個序列。 + 要合併的第二個序列。 + 指定如何從兩個序列合併項目的函式。 + 第一個輸入序列的項目型別。 + 第二個輸入序列的項目型別。 + 結果序列的項目型別。 + + 為 null。 + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/System.Linq.Queryable.dll b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/System.Linq.Queryable.dll new file mode 100644 index 0000000..5532906 Binary files /dev/null and b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/System.Linq.Queryable.dll differ diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/System.Linq.Queryable.xml new file mode 100644 index 0000000..5cd612c --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/System.Linq.Queryable.xml @@ -0,0 +1,1282 @@ + + + + System.Linq.Queryable + + + + Represents an expression tree and provides functionality to execute the expression tree after rewriting it. + + + Initializes a new instance of the class. + + + Represents an expression tree and provides functionality to execute the expression tree after rewriting it. + The data type of the value that results from executing the expression tree. + + + Initializes a new instance of the class. + An expression tree to associate with the new instance. + + + Represents an as an data source. + + + Initializes a new instance of the class. + + + Represents an collection as an data source. + The type of the data in the collection. + + + Initializes a new instance of the class and associates it with an collection. + A collection to associate with the new instance. + + + Initializes a new instance of the class and associates the instance with an expression tree. + An expression tree to associate with the new instance. + + + Returns an enumerator that can iterate through the associated collection, or, if it is null, through the collection that results from rewriting the associated expression tree as a query on an data source and executing it. + An enumerator that can be used to iterate through the associated data source. + + + Returns an enumerator that can iterate through the associated collection, or, if it is null, through the collection that results from rewriting the associated expression tree as a query on an data source and executing it. + An enumerator that can be used to iterate through the associated data source. + + + Gets the type of the data in the collection that this instance represents. + The type of the data in the collection that this instance represents. + + + Gets the expression tree that is associated with or that represents this instance. + The expression tree that is associated with or that represents this instance. + + + Gets the query provider that is associated with this instance. + The query provider that is associated with this instance. + + + Constructs a new object and associates it with a specified expression tree that represents an collection of data. + An EnumerableQuery object that is associated with . + An expression tree to execute. + The type of the data in the collection that represents. + + + Constructs a new object and associates it with a specified expression tree that represents an collection of data. + An object that is associated with . + An expression tree that represents an collection of data. + + + Executes an expression after rewriting it to call methods instead of methods on any enumerable data sources that cannot be queried by methods. + The value that results from executing . + An expression tree to execute. + The type of the data in the collection that represents. + + + Executes an expression after rewriting it to call methods instead of methods on any enumerable data sources that cannot be queried by methods. + The value that results from executing . + An expression tree to execute. + + + Returns a textual representation of the enumerable collection or, if it is null, of the expression tree that is associated with this instance. + A textual representation of the enumerable collection or, if it is null, of the expression tree that is associated with this instance. + + + Provides a set of static (Shared in Visual Basic) methods for querying data structures that implement . + + + Applies an accumulator function over a sequence. + The final accumulator value. + A sequence to aggregate over. + An accumulator function to apply to each element. + The type of the elements of . + + or is null. + + contains no elements. + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value. + The final accumulator value. + A sequence to aggregate over. + The initial accumulator value. + An accumulator function to invoke on each element. + The type of the elements of . + The type of the accumulator value. + + or is null. + + + 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 transformed final accumulator value. + A sequence to aggregate over. + The initial accumulator value. + An accumulator function to invoke on each element. + A function to transform the final accumulator value into the result value. + The type of the elements of . + The type of the accumulator value. + The type of the resulting value. + + or or is null. + + + Determines whether all the elements of a sequence satisfy a condition. + true if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, false. + A sequence whose elements to test for a condition. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Determines whether a sequence contains any elements. + true if the source sequence contains any elements; otherwise, false. + A sequence to check for being empty. + The type of the elements of . + + is null. + + + Determines whether any element of a sequence satisfies a condition. + true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. + A sequence whose elements to test for a condition. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Converts a generic to a generic . + An that represents the input sequence. + A sequence to convert. + The type of the elements of . + + is null. + + + Converts an to an . + An that represents the input sequence. + A sequence to convert. + + does not implement for some . + + is null. + + + Computes the average of a sequence of values. + The average of the sequence of values. + A sequence of values to calculate the average of. + + is null. + + contains no elements. + + + Computes the average of a sequence of values. + The average of the sequence of values. + A sequence of values to calculate the average of. + + is null. + + contains no elements. + + + Computes the average of a sequence of values. + The average of the sequence of values. + A sequence of values to calculate the average of. + + is null. + + contains no elements. + + + Computes the average of a sequence of values. + The average of the sequence of values. + A sequence of values to calculate the average of. + + is null. + + contains no elements. + + + Computes the average of a sequence of nullable values. + The average of the sequence of values, or null if the source sequence is empty or contains only null values. + A sequence of nullable values to calculate the average of. + + is null. + + + Computes the average of a sequence of nullable values. + The average of the sequence of values, or null if the source sequence is empty or contains only null values. + A sequence of nullable values to calculate the average of. + + is null. + + + Computes the average of a sequence of nullable values. + The average of the sequence of values, or null if the source sequence is empty or contains only null values. + A sequence of nullable values to calculate the average of. + + is null. + + + Computes the average of a sequence of nullable values. + The average of the sequence of values, or null if the source sequence is empty or contains only null values. + A sequence of nullable values to calculate the average of. + + is null. + + + Computes the average of a sequence of nullable values. + The average of the sequence of values, or null if the source sequence is empty or contains only null values. + A sequence of nullable values to calculate the average of. + + is null. + + + Computes the average of a sequence of values. + The average of the sequence of values. + A sequence of values to calculate the average of. + + is null. + + contains no elements. + + + Computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values. + A sequence of values that are used to calculate an average. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + contains no elements. + + + Computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + contains no elements. + + + Computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + contains no elements. + + + Computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + contains no elements. + + + Computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values, or null if the sequence is empty or contains only null values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values, or null if the sequence is empty or contains only null values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values, or null if the sequence is empty or contains only null values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values, or null if the sequence is empty or contains only null values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the average of a sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values, or null if the sequence is empty or contains only null values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the average of a sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The average of the sequence of values. + A sequence of values to calculate the average of. + A projection function to apply to each element. + The type of the elements of . + + or is null. + + contains no elements. + + + Converts the elements of an to the specified type. + An that contains each element of the source sequence converted to the specified type. + The that contains the elements to be converted. + The type to convert the elements of to. + + is null. + An element in the sequence cannot be cast to type . + + + Concatenates two sequences. + An that contains the concatenated elements of the two input sequences. + The first sequence to concatenate. + The sequence to concatenate to the first sequence. + The type of the elements of the input sequences. + + or is null. + + + Determines whether a sequence contains a specified element by using the default equality comparer. + true if the input sequence contains an element that has the specified value; otherwise, false. + An in which to locate . + The object to locate in the sequence. + The type of the elements of . + + is null. + + + Determines whether a sequence contains a specified element by using a specified . + true if the input sequence contains an element that has the specified value; otherwise, false. + An in which to locate . + The object to locate in the sequence. + An to compare values. + The type of the elements of . + + is null. + + + Returns the number of elements in a sequence. + The number of elements in the input sequence. + The that contains the elements to be counted. + The type of the elements of . + + is null. + The number of elements in is larger than . + + + Returns the number of elements in the specified sequence that satisfies a condition. + The number of elements in the sequence that satisfies the condition in the predicate function. + An that contains the elements to be counted. + A function to test each element for a condition. + The type of the elements of . + + or is null. + The number of elements in is larger than . + + + Returns the elements of the specified sequence or the type parameter's default value in a singleton collection if the sequence is empty. + An that contains default() if is empty; otherwise, . + The to return a default value for if empty. + The type of the elements of . + + is null. + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + An that contains if is empty; otherwise, . + The to return the specified value for if empty. + The value to return if the sequence is empty. + The type of the elements of . + + is null. + + + Returns distinct elements from a sequence by using the default equality comparer to compare values. + An that contains distinct elements from . + The to remove duplicates from. + The type of the elements of . + + is null. + + + Returns distinct elements from a sequence by using a specified to compare values. + An that contains distinct elements from . + The to remove duplicates from. + An to compare values. + The type of the elements of . + + or is null. + + + Returns the element at a specified index in a sequence. + The element at the specified position in . + An to return an element from. + The zero-based index of the element to retrieve. + The type of the elements of . + + is null. + + is less than zero. + + + Returns the element at a specified index in a sequence or a default value if the index is out of range. + default() if is outside the bounds of ; otherwise, the element at the specified position in . + An to return an element from. + The zero-based index of the element to retrieve. + The type of the elements of . + + is null. + + + Produces the set difference of two sequences by using the default equality comparer to compare values. + An that contains the set difference of the two sequences. + An whose elements that are not also in will be returned. + An whose elements that also occur in the first sequence will not appear in the returned sequence. + The type of the elements of the input sequences. + + or is null. + + + Produces the set difference of two sequences by using the specified to compare values. + An that contains the set difference of the two sequences. + An whose elements that are not also in will be returned. + An whose elements that also occur in the first sequence will not appear in the returned sequence. + An to compare values. + The type of the elements of the input sequences. + + or is null. + + + Returns the first element of a sequence. + The first element in . + The to return the first element of. + The type of the elements of . + + is null. + The source sequence is empty. + + + Returns the first element of a sequence that satisfies a specified condition. + The first element in that passes the test in . + An to return an element from. + A function to test each element for a condition. + The type of the elements of . + + or is null. + No element satisfies the condition in .-or-The source sequence is empty. + + + Returns the first element of a sequence, or a default value if the sequence contains no elements. + default() if is empty; otherwise, the first element in . + The to return the first element of. + The type of the elements of . + + is null. + + + Returns the first element of a sequence that satisfies a specified condition or a default value if no such element is found. + default() if is empty or if no element passes the test specified by ; otherwise, the first element in that passes the test specified by . + An to return an element from. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Groups the elements of a sequence according to a specified key selector function. + An IQueryable<IGrouping<TKey, TSource>> in C# or IQueryable(Of IGrouping(Of TKey, TSource)) in Visual Basic where each object contains a sequence of objects and a key. + An whose elements to group. + A function to extract the key for each element. + The type of the elements of . + The type of the key returned by the function represented in . + + or is null. + + + Groups the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer. + An IQueryable<IGrouping<TKey, TSource>> in C# or IQueryable(Of IGrouping(Of TKey, TSource)) in Visual Basic where each contains a sequence of objects and a key. + An whose elements to group. + A function to extract the key for each element. + An to compare keys. + The type of the elements of . + The type of the key returned by the function represented in . + + or or is null. + + + Groups the elements of a sequence according to a specified key selector function and projects the elements for each group by using a specified function. + An IQueryable<IGrouping<TKey, TElement>> in C# or IQueryable(Of IGrouping(Of TKey, TElement)) in Visual Basic where each contains a sequence of objects of type and a key. + An whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an . + The type of the elements of . + The type of the key returned by the function represented in . + The type of the elements in each . + + or or is null. + + + Groups the elements of a sequence and projects the elements for each group by using a specified function. Key values are compared by using a specified comparer. + An IQueryable<IGrouping<TKey, TElement>> in C# or IQueryable(Of IGrouping(Of TKey, TElement)) in Visual Basic where each contains a sequence of objects of type and a key. + An whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an . + An to compare keys. + The type of the elements of . + The type of the key returned by the function represented in . + The type of the elements in each . + + or or or is null. + + + Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The elements of each group are projected by using a specified function. + An T:System.Linq.IQueryable`1 that has a type argument of and where each element represents a projection over a group and its key. + An whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an . + A function to create a result value from each group. + The type of the elements of . + The type of the key returned by the function represented in . + The type of the elements in each . + The type of the result value returned by . + + or or or is null. + + + Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Keys are compared by using a specified comparer and the elements of each group are projected by using a specified function. + An T:System.Linq.IQueryable`1 that has a type argument of and where each element represents a projection over a group and its key. + An whose elements to group. + A function to extract the key for each element. + A function to map each source element to an element in an . + A function to create a result value from each group. + An to compare keys. + The type of the elements of . + The type of the key returned by the function represented in . + The type of the elements in each . + The type of the result value returned by . + + or or or or is null. + + + Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. + An T:System.Linq.IQueryable`1 that has a type argument of and where each element represents a projection over a group and its key. + An whose elements to group. + A function to extract the key for each element. + A function to create a result value from each group. + The type of the elements of . + The type of the key returned by the function represented in . + The type of the result value returned by . + + or or is null. + + + Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Keys are compared by using a specified comparer. + An T:System.Linq.IQueryable`1 that has a type argument of and where each element represents a projection over a group and its key. + An whose elements to group. + A function to extract the key for each element. + A function to create a result value from each group. + An to compare keys. + The type of the elements of . + The type of the key returned by the function represented in . + The type of the result value returned by . + + or or or is null. + + + Correlates the elements of two sequences based on key equality and groups the results. The default equality comparer is used to compare keys. + An that contains elements of type obtained by performing a grouped join on two sequences. + The first sequence to join. + The sequence to join to the first sequence. + A function to extract the join key from each element of the first sequence. + A function to extract the join key from each element of the second sequence. + A function to create a result element from an element from the first sequence and a collection of matching elements from the second sequence. + The type of the elements of the first sequence. + The type of the elements of the second sequence. + The type of the keys returned by the key selector functions. + The type of the result elements. + + or or or or is null. + + + Correlates the elements of two sequences based on key equality and groups the results. A specified is used to compare keys. + An that contains elements of type obtained by performing a grouped join on two sequences. + The first sequence to join. + The sequence to join to the first sequence. + A function to extract the join key from each element of the first sequence. + A function to extract the join key from each element of the second sequence. + A function to create a result element from an element from the first sequence and a collection of matching elements from the second sequence. + A comparer to hash and compare keys. + The type of the elements of the first sequence. + The type of the elements of the second sequence. + The type of the keys returned by the key selector functions. + The type of the result elements. + + or or or or is null. + + + Produces the set intersection of two sequences by using the default equality comparer to compare values. + A sequence that contains the set intersection of the two sequences. + A sequence whose distinct elements that also appear in are returned. + A sequence whose distinct elements that also appear in the first sequence are returned. + The type of the elements of the input sequences. + + or is null. + + + Produces the set intersection of two sequences by using the specified to compare values. + An that contains the set intersection of the two sequences. + An whose distinct elements that also appear in are returned. + An whose distinct elements that also appear in the first sequence are returned. + An to compare values. + The type of the elements of the input sequences. + + or is null. + + + Correlates the elements of two sequences based on matching keys. The default equality comparer is used to compare keys. + An that has elements of type obtained by performing an inner join on two sequences. + The first sequence to join. + The sequence to join to the first sequence. + A function to extract the join key from each element of the first sequence. + A function to extract the join key from each element of the second sequence. + A function to create a result element from two matching elements. + The type of the elements of the first sequence. + The type of the elements of the second sequence. + The type of the keys returned by the key selector functions. + The type of the result elements. + + or or or or is null. + + + Correlates the elements of two sequences based on matching keys. A specified is used to compare keys. + An that has elements of type obtained by performing an inner join on two sequences. + The first sequence to join. + The sequence to join to the first sequence. + A function to extract the join key from each element of the first sequence. + A function to extract the join key from each element of the second sequence. + A function to create a result element from two matching elements. + An to hash and compare keys. + The type of the elements of the first sequence. + The type of the elements of the second sequence. + The type of the keys returned by the key selector functions. + The type of the result elements. + + or or or or is null. + + + Returns the last element in a sequence. + The value at the last position in . + An to return the last element of. + The type of the elements of . + + is null. + The source sequence is empty. + + + Returns the last element of a sequence that satisfies a specified condition. + The last element in that passes the test specified by . + An to return an element from. + A function to test each element for a condition. + The type of the elements of . + + or is null. + No element satisfies the condition in .-or-The source sequence is empty. + + + Returns the last element in a sequence, or a default value if the sequence contains no elements. + default() if is empty; otherwise, the last element in . + An to return the last element of. + The type of the elements of . + + is null. + + + Returns the last element of a sequence that satisfies a condition or a default value if no such element is found. + default() if is empty or if no elements pass the test in the predicate function; otherwise, the last element of that passes the test in the predicate function. + An to return an element from. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Returns an that represents the total number of elements in a sequence. + The number of elements in . + An that contains the elements to be counted. + The type of the elements of . + + is null. + The number of elements exceeds . + + + Returns an that represents the number of elements in a sequence that satisfy a condition. + The number of elements in that satisfy the condition in the predicate function. + An that contains the elements to be counted. + A function to test each element for a condition. + The type of the elements of . + + or is null. + The number of matching elements exceeds . + + + Returns the maximum value in a generic . + The maximum value in the sequence. + A sequence of values to determine the maximum of. + The type of the elements of . + + is null. + + + Invokes a projection function on each element of a generic and returns the maximum resulting value. + The maximum value in the sequence. + A sequence of values to determine the maximum of. + A projection function to apply to each element. + The type of the elements of . + The type of the value returned by the function represented by . + + or is null. + + + Returns the minimum value of a generic . + The minimum value in the sequence. + A sequence of values to determine the minimum of. + The type of the elements of . + + is null. + + + Invokes a projection function on each element of a generic and returns the minimum resulting value. + The minimum value in the sequence. + A sequence of values to determine the minimum of. + A projection function to apply to each element. + The type of the elements of . + The type of the value returned by the function represented by . + + or is null. + + + Filters the elements of an based on a specified type. + A collection that contains the elements from that have type . + An whose elements to filter. + The type to filter the elements of the sequence on. + + is null. + + + Sorts the elements of a sequence in ascending order according to a key. + An whose elements are sorted according to a key. + A sequence of values to order. + A function to extract a key from an element. + The type of the elements of . + The type of the key returned by the function that is represented by . + + or is null. + + + Sorts the elements of a sequence in ascending order by using a specified comparer. + An whose elements are sorted according to a key. + A sequence of values to order. + A function to extract a key from an element. + An to compare keys. + The type of the elements of . + The type of the key returned by the function that is represented by . + + or or is null. + + + Sorts the elements of a sequence in descending order according to a key. + An whose elements are sorted in descending order according to a key. + A sequence of values to order. + A function to extract a key from an element. + The type of the elements of . + The type of the key returned by the function that is represented by . + + or is null. + + + Sorts the elements of a sequence in descending order by using a specified comparer. + An whose elements are sorted in descending order according to a key. + A sequence of values to order. + A function to extract a key from an element. + An to compare keys. + The type of the elements of . + The type of the key returned by the function that is represented by . + + or or is null. + + + Inverts the order of the elements in a sequence. + An whose elements correspond to those of the input sequence in reverse order. + A sequence of values to reverse. + The type of the elements of . + + is null. + + + Projects each element of a sequence into a new form. + An whose elements are the result of invoking a projection function on each element of . + A sequence of values to project. + A projection function to apply to each element. + The type of the elements of . + The type of the value returned by the function represented by . + + or is null. + + + Projects each element of a sequence into a new form by incorporating the element's index. + An whose elements are the result of invoking a projection function on each element of . + A sequence of values to project. + A projection function to apply to each element. + The type of the elements of . + The type of the value returned by the function represented by . + + or is null. + + + Projects each element of a sequence to an and invokes a result selector function on each element therein. The resulting values from each intermediate sequence are combined into a single, one-dimensional sequence and returned. + An whose elements are the result of invoking the one-to-many projection function on each element of and then mapping each of those sequence elements and their corresponding element to a result element. + A sequence of values to project. + A projection function to apply to each element of the input sequence. + A projection function to apply to each element of each intermediate sequence. + The type of the elements of . + The type of the intermediate elements collected by the function represented by . + The type of the elements of the resulting sequence. + + or or is null. + + + Projects each element of a sequence to an and combines the resulting sequences into one sequence. + An whose elements are the result of invoking a one-to-many projection function on each element of the input sequence. + A sequence of values to project. + A projection function to apply to each element. + The type of the elements of . + The type of the elements of the sequence returned by the function represented by . + + or is null. + + + Projects each element of a sequence to an that incorporates the index of the source element that produced it. A result selector function is invoked on each element of each intermediate sequence, and the resulting values are combined into a single, one-dimensional sequence and returned. + An whose elements are the result of invoking the one-to-many projection function on each element of and then mapping each of those sequence elements and their corresponding element to a result element. + A sequence of values to project. + A projection function to apply to each element of the input sequence; the second parameter of this function represents the index of the source element. + A projection function to apply to each element of each intermediate sequence. + The type of the elements of . + The type of the intermediate elements collected by the function represented by . + The type of the elements of the resulting sequence. + + or or is null. + + + Projects each element of a sequence to an and combines the resulting sequences into one sequence. The index of each source element is used in the projected form of that element. + An whose elements are the result of invoking a one-to-many projection function on each element of the input sequence. + A sequence of values to project. + A projection function to apply to each element; the second parameter of this function represents the index of the source element. + The type of the elements of . + The type of the elements of the sequence returned by the function represented by . + + or is null. + + + Determines whether two sequences are equal by using the default equality comparer to compare elements. + true if the two source sequences are of equal length and their corresponding elements compare equal; otherwise, false. + An whose elements to compare to those of . + An whose elements to compare to those of the first sequence. + The type of the elements of the input sequences. + + or is null. + + + Determines whether two sequences are equal by using a specified to compare elements. + true if the two source sequences are of equal length and their corresponding elements compare equal; otherwise, false. + An whose elements to compare to those of . + An whose elements to compare to those of the first sequence. + An to use to compare elements. + The type of the elements of the input sequences. + + or is null. + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + The single element of the input sequence. + An to return the single element of. + The type of the elements of . + + is null. + + has more than one element. + + + Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists. + The single element of the input sequence that satisfies the condition in . + An to return a single element from. + A function to test an element for a condition. + The type of the elements of . + + or is null. + No element satisfies the condition in .-or-More than one element satisfies the condition in .-or-The source sequence is empty. + + + Returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence. + The single element of the input sequence, or default() if the sequence contains no elements. + An to return the single element of. + The type of the elements of . + + is null. + + has more than one element. + + + Returns the only element of a sequence that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition. + The single element of the input sequence that satisfies the condition in , or default() if no such element is found. + An to return a single element from. + A function to test an element for a condition. + The type of the elements of . + + or is null. + More than one element satisfies the condition in . + + + Bypasses a specified number of elements in a sequence and then returns the remaining elements. + An that contains elements that occur after the specified index in the input sequence. + An to return elements from. + The number of elements to skip before returning the remaining elements. + The type of the elements of . + + is null. + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + An that contains elements from starting at the first element in the linear series that does not pass the test specified by . + An to return elements from. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. The element's index is used in the logic of the predicate function. + An that contains elements from starting at the first element in the linear series that does not pass the test specified by . + An to return elements from. + A function to test each element for a condition; the second parameter of this function represents the index of the source element. + The type of the elements of . + + or is null. + + + Computes the sum of a sequence of values. + The sum of the values in the sequence. + A sequence of values to calculate the sum of. + + is null. + The sum is larger than . + + + Computes the sum of a sequence of values. + The sum of the values in the sequence. + A sequence of values to calculate the sum of. + + is null. + + + Computes the sum of a sequence of values. + The sum of the values in the sequence. + A sequence of values to calculate the sum of. + + is null. + The sum is larger than . + + + Computes the sum of a sequence of values. + The sum of the values in the sequence. + A sequence of values to calculate the sum of. + + is null. + The sum is larger than . + + + Computes the sum of a sequence of nullable values. + The sum of the values in the sequence. + A sequence of nullable values to calculate the sum of. + + is null. + The sum is larger than . + + + Computes the sum of a sequence of nullable values. + The sum of the values in the sequence. + A sequence of nullable values to calculate the sum of. + + is null. + + + Computes the sum of a sequence of nullable values. + The sum of the values in the sequence. + A sequence of nullable values to calculate the sum of. + + is null. + The sum is larger than . + + + Computes the sum of a sequence of nullable values. + The sum of the values in the sequence. + A sequence of nullable values to calculate the sum of. + + is null. + The sum is larger than . + + + Computes the sum of a sequence of nullable values. + The sum of the values in the sequence. + A sequence of nullable values to calculate the sum of. + + is null. + + + Computes the sum of a sequence of values. + The sum of the values in the sequence. + A sequence of values to calculate the sum of. + + is null. + + + Computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + The sum is larger than . + + + Computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + The sum is larger than . + + + Computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + The sum is larger than . + + + Computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + The sum is larger than . + + + Computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + The sum is larger than . + + + Computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + The sum is larger than . + + + Computes the sum of the sequence of nullable values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Computes the sum of the sequence of values that is obtained by invoking a projection function on each element of the input sequence. + The sum of the projected values. + A sequence of values of type . + A projection function to apply to each element. + The type of the elements of . + + or is null. + + + Returns a specified number of contiguous elements from the start of a sequence. + An that contains the specified number of elements from the start of . + The sequence to return elements from. + The number of elements to return. + The type of the elements of . + + is null. + + + Returns elements from a sequence as long as a specified condition is true. + An that contains elements from the input sequence occurring before the element at which the test specified by no longer passes. + The sequence to return elements from. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Returns elements from a sequence as long as a specified condition is true. The element's index is used in the logic of the predicate function. + An that contains elements from the input sequence occurring before the element at which the test specified by no longer passes. + The sequence to return elements from. + A function to test each element for a condition; the second parameter of the function represents the index of the element in the source sequence. + The type of the elements of . + + or is null. + + + Performs a subsequent ordering of the elements in a sequence in ascending order according to a key. + An whose elements are sorted according to a key. + An that contains elements to sort. + A function to extract a key from each element. + The type of the elements of . + The type of the key returned by the function represented by . + + or is null. + + + Performs a subsequent ordering of the elements in a sequence in ascending order by using a specified comparer. + An whose elements are sorted according to a key. + An that contains elements to sort. + A function to extract a key from each element. + An to compare keys. + The type of the elements of . + The type of the key returned by the function represented by . + + or or is null. + + + Performs a subsequent ordering of the elements in a sequence in descending order, according to a key. + An whose elements are sorted in descending order according to a key. + An that contains elements to sort. + A function to extract a key from each element. + The type of the elements of . + The type of the key returned by the function represented by . + + or is null. + + + Performs a subsequent ordering of the elements in a sequence in descending order by using a specified comparer. + A collection whose elements are sorted in descending order according to a key. + An that contains elements to sort. + A function to extract a key from each element. + An to compare keys. + The type of the elements of . + The type of the key that is returned by the function. + + or or is null. + + + Produces the set union of two sequences by using the default equality comparer. + An that contains the elements from both input sequences, excluding duplicates. + A sequence whose distinct elements form the first set for the union operation. + A sequence whose distinct elements form the second set for the union operation. + The type of the elements of the input sequences. + + or is null. + + + Produces the set union of two sequences by using a specified . + An that contains the elements from both input sequences, excluding duplicates. + A sequence whose distinct elements form the first set for the union operation. + A sequence whose distinct elements form the second set for the union operation. + An to compare values. + The type of the elements of the input sequences. + + or is null. + + + Filters a sequence of values based on a predicate. + An that contains elements from the input sequence that satisfy the condition specified by . + An to filter. + A function to test each element for a condition. + The type of the elements of . + + or is null. + + + Filters a sequence of values based on a predicate. Each element's index is used in the logic of the predicate function. + An that contains elements from the input sequence that satisfy the condition specified by . + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the element in the source sequence. + The type of the elements of . + + or is null. + + + Merges two sequences by using the specified predicate function. + An that contains merged elements of two input sequences. + The first sequence to merge. + The second sequence to merge. + A function that specifies how to merge the elements from the two sequences. + The type of the elements of the first input sequence. + The type of the elements of the second input sequence. + The type of the elements of the result sequence. + + or is null. + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/de/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/de/System.Linq.Queryable.xml new file mode 100644 index 0000000..cd0d76a --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/de/System.Linq.Queryable.xml @@ -0,0 +1,1281 @@ + + + + System.Linq.Queryable + + + + Stellt eine Ausdrucksbaumstruktur dar und liefert die Funktionalität zur Ausführung der Ausdrucksbaumstruktur, nachdem sie umgeschrieben wurde. + + + Initialisiert eine neue Instanz der -Klasse. + + + Stellt eine Ausdrucksbaumstruktur dar und liefert die Funktionalität zur Ausführung der Ausdrucksbaumstruktur, nachdem sie umgeschrieben wurde. + Der Datentyp des Werts, der aus der Ausführung der Ausdrucksbaumstruktur resultiert. + + + Initialisiert eine neue Instanz der -Klasse. + Eine Ausdrucksbaumstruktur, die mit der neuen Instanz verknüpft werden soll. + + + Stellt als eine -Datenquelle dar. + + + Initialisiert eine neue Instanz der -Klasse. + + + Stellt eine -Auflistung als -Datenquelle dar. + Der Datentyp in der Datenauflistung. + + + Initialisiert eine neue Instanz der -Klasse und verknüpft sie mit einer -Auflistung. + Eine Auflistung, die mit der neuen Instanz verknüpft werden soll. + + + Initialisiert eine neue Instanz der -Klasse und verknüpft die Instanz mit einer Ausdrucksbaumstruktur. + Eine Ausdrucksbaumstruktur, die mit der neuen Instanz verknüpft werden soll. + + + Gibt einen Enumerator zurück, der die zugehörige -Auflistung durchlaufen kann oder der, falls diese null ist, die Auflistung durchläuft, die von der Umschreibung der zugehörigen Ausdrucksbaumstruktur als Abfrage zu einer -Datenquelle stammt und diese ausführt. + Ein Enumerator, mit dem die zugehörige Datenquelle durchlaufen werden kann. + + + Gibt einen Enumerator zurück, der die zugehörige -Auflistung durchlaufen kann oder der, falls diese null ist, die Auflistung durchläuft, die von der Umschreibung der zugehörigen Ausdrucksbaumstruktur als Abfrage zu einer -Datenquelle stammt und diese ausführt. + Ein Enumerator, mit dem die zugehörige Datenquelle durchlaufen werden kann. + + + Ruft den Datentyp in der Auflistung ab, die diese Instanz darstellt. + Der Datentyp in der Auflistung, die diese Instanz darstellt. + + + Ruft die Ausdrucksbaumstruktur ab, die mit dieser Instanz verknüpft ist oder diese Instanz darstellt. + Die Ausdrucksbaumstruktur, die mit dieser Instanz verknüpft ist oder diese Instanz darstellt. + + + Ruft den Abfrageanbieter ab, der mit dieser Instanz verknüpft ist. + Der Abfrageanbieter, der mit dieser Instanz verknüpft ist. + + + Erstellt eine neues -Objekt und verknüpft es mit einer angegebenen Ausdrucksbaumstruktur, die eine -Auflistung von Daten darstellt. + Ein EnumerableQuery-Objekt, das mit verknüpft ist. + Eine auszuführende Ausdrucksbaumstruktur. + Der Datentyp in der Auflistung, die darstellt. + + + Erstellt eine neues -Objekt und verknüpft es mit einer angegebenen Ausdrucksbaumstruktur, die eine -Auflistung von Daten darstellt. + Ein -Objekt, das mit diesem verknüpft ist. + Eine Ausdrucksbaumstruktur, die eine -Auflistung von Daten darstellt. + + + Führt einen Ausdruck aus, nachdem dieser zum Aufrufen von -Methoden statt -Methoden zu allen zählbaren Datenquellen umgeschrieben wurde, die nicht von -Methoden abgefragt werden können. + Der Wert, der aus der Ausführung von stammt. + Eine auszuführende Ausdrucksbaumstruktur. + Der Datentyp in der Auflistung, die darstellt. + + + Führt einen Ausdruck aus, nachdem dieser zum Aufrufen von -Methoden statt -Methoden zu allen zählbaren Datenquellen umgeschrieben wurde, die nicht von -Methoden abgefragt werden können. + Der Wert, der aus der Ausführung von stammt. + Eine auszuführende Ausdrucksbaumstruktur. + + + Gibt eine Textdarstellung der zählbaren Auflistung zurück oder, wenn diese NULL ist, eine Darstellung der Ausdrucksbaumstruktur, die dieser Instanz zugeordnet ist. + Eine Textdarstellung der zählbaren Auflistung oder, wenn diese NULL ist, eine Darstellung der Ausdrucksbaumstruktur, die dieser Instanz zugeordnet ist. + + + Stellt einen Satz von static-Methoden (Shared-Methoden in Visual Basic) zum Abfragen von Datenstrukturen bereit, die implementieren. + + + Wendet eine Akkumulatorfunktion auf eine Sequenz an. + Der letzte Akkumulatorwert. + Eine Sequenz, die aggregiert werden soll. + Eine Akkumulatorfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + enthält keine Elemente. + + + Wendet eine Akkumulatorfunktion auf eine Sequenz an.Der angegebene Startwert wird als erster Akkumulatorwert verwendet. + Der letzte Akkumulatorwert. + Eine Sequenz, die aggregiert werden soll. + Der erste Akkumulatorwert. + Eine Akkumulatorfunktion, die für jedes Element aufgerufen werden soll. + Der Typ der Elemente von . + Der Typ des Akkumulatorwerts. + + oder ist null. + + + Wendet eine Akkumulatorfunktion auf eine Sequenz an.Der angegebene Startwert wird als erster Akkumulatorwert verwendet, und der Ergebniswert wird mit der angegebenen Funktion ausgewählt. + Der transformierte letzte Akkumulatorwert. + Eine Sequenz, die aggregiert werden soll. + Der erste Akkumulatorwert. + Eine Akkumulatorfunktion, die für jedes Element aufgerufen werden soll. + Eine Funktion zum Transformieren des letzten Akkumulatorwerts in den Ergebniswert. + Der Typ der Elemente von . + Der Typ des Akkumulatorwerts. + Der Typ des Ergebniswerts. + + , oder ist null. + + + Bestimmt, ob alle Elemente einer Sequenz eine Bedingung erfüllen. + true, wenn jedes Element der Quellsequenz im angegebenen Prädikat erfolgreich überprüft wird oder wenn die Sequenz leer ist, andernfalls false. + Eine Sequenz, deren Elemente auf eine Bedingung überprüft werden sollen. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Bestimmt, ob eine Sequenz Elemente enthält. + true, wenn die Quellsequenz Elemente enthält, andernfalls false. + Eine Sequenz, für die überprüft werden soll, ob sie leer ist. + Der Typ der Elemente von . + + ist null. + + + Bestimmt, ob ein Element einer Sequenz eine Bedingung erfüllt. + true, wenn Elemente der Quellsequenz im angegebenen Prädikat erfolgreich überprüft werden, andernfalls false. + Eine Sequenz, deren Elemente auf eine Bedingung überprüft werden sollen. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Konvertiert ein generisches in ein generisches . + Ein , das die Eingabesequenz darstellt. + Eine zu konvertierende Sequenz. + Der Typ der Elemente von . + + ist null. + + + Konvertiert einen in einen . + Ein , das die Eingabesequenz darstellt. + Eine zu konvertierende Sequenz. + Für einige wird von nicht implementiert. + + ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von -Werten, deren Durchschnitt berechnet werden soll. + + ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von -Werten, deren Durchschnitt berechnet werden soll. + + ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von -Werten, deren Durchschnitt berechnet werden soll. + + ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von -Werten, deren Durchschnitt berechnet werden soll. + + ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen. + Der Durchschnitt der Sequenz von Werten oder null, wenn die Quellsequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von -Werten, die NULL zulassen und deren Durchschnitt berechnet werden soll. + + ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen. + Der Durchschnitt der Sequenz von Werten oder null, wenn die Quellsequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von -Werten, die NULL zulassen und deren Durchschnitt berechnet werden soll. + + ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen. + Der Durchschnitt der Sequenz von Werten oder null, wenn die Quellsequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von -Werten, die NULL zulassen und deren Durchschnitt berechnet werden soll. + + ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen. + Der Durchschnitt der Sequenz von Werten oder null, wenn die Quellsequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von -Werten, die NULL zulassen und deren Durchschnitt berechnet werden soll. + + ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen. + Der Durchschnitt der Sequenz von Werten oder null, wenn die Quellsequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von -Werten, die NULL zulassen und deren Durchschnitt berechnet werden soll. + + ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von -Werten, deren Durchschnitt berechnet werden soll. + + ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von Werten, mit denen ein Durchschnittswert berechnet wird. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + enthält keine Elemente. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten oder null, wenn die -Sequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten oder null, wenn die -Sequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten oder null, wenn die -Sequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten oder null, wenn die -Sequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten oder null, wenn die -Sequenz leer ist oder nur null-Werte enthält. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet den Durchschnitt einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Der Durchschnitt der Sequenz von Werten. + Eine Sequenz von Werten, deren Durchschnitt berechnet werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + enthält keine Elemente. + + + Konvertiert die Elemente eines in den angegebenen Typ. + Ein , das jedes in den angegebenen Typ konvertierte Element der Quellsequenz enthält. + Das , das die zu konvertierenden Elemente enthält. + Der Typ, in den die Elemente von konvertiert werden sollen. + + ist null. + Ein Element in der Sequenz kann nicht in den Typ umgewandelt werden. + + + Verkettet zwei Sequenzen. + Ein , das die verketteten Elemente der beiden Eingabesequenzen enthält. + Die erste zu verkettende Sequenz. + Die Sequenz, die mit der ersten Sequenz verkettet werden soll. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Bestimmt mithilfe des Standardgleichheitsvergleichs, ob eine Sequenz ein angegebenes Element enthält. + true, wenn die Eingabesequenz ein Element mit dem angegebenen Wert enthält, andernfalls false. + Ein , in dem gesucht werden soll. + Das Objekt, das in der Sequenz gesucht werden soll. + Der Typ der Elemente von . + + ist null. + + + Bestimmt mithilfe eines angegebenen , ob eine Sequenz ein angegebenes Element enthält. + true, wenn die Eingabesequenz ein Element mit dem angegebenen Wert enthält, andernfalls false. + Ein , in dem gesucht werden soll. + Das Objekt, das in der Sequenz gesucht werden soll. + Ein zum Vergleichen von Werten. + Der Typ der Elemente von . + + ist null. + + + Gibt die Anzahl der Elemente in einer Sequenz zurück. + Die Anzahl der Elemente in der Eingabesequenz. + Das , das die zu zählenden Elemente enthält. + Der Typ der Elemente von . + + ist null. + Die Anzahl der Elemente in ist größer als . + + + Gibt die Anzahl der Elemente in der angegebenen Sequenz zurück, die eine Bedingung erfüllen. + Die Anzahl von Elementen in der Sequenz, die die Bedingung in der Prädikatfunktion erfüllen. + Ein , das die zu zählenden Elemente enthält. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + Die Anzahl der Elemente in ist größer als . + + + Gibt die Elemente der angegebenen Sequenz zurück, oder den Standardwert des Typparameters in einer Singletonauflistung, wenn die Sequenz leer ist. + Ein , das default() enthält, wenn leer ist, andernfalls . + Das , für das ein Standardwert zurückgegeben soll, wenn die Sequenz leer ist. + Der Typ der Elemente von . + + ist null. + + + Gibt die Elemente der angegebenen Sequenz zurück, oder den angegebenen Wert in einer Singletonauflistung, wenn die Sequenz leer ist. + Ein , das enthält, wenn leer ist, andernfalls . + Das , für das der angegebene Wert zurückgegeben soll, wenn die Sequenz leer ist. + Der Wert, der zurückgegeben werden soll, wenn die Sequenz leer ist. + Der Typ der Elemente von . + + ist null. + + + Gibt mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Werten unterschiedliche Elemente aus einer Sequenz zurück. + Ein , das unterschiedliche Elemente aus enthält. + Das , aus dem Duplikate entfernt werden sollen. + Der Typ der Elemente von . + + ist null. + + + Gibt mithilfe eines angegebenen zum Vergleichen von Werten unterschiedliche Elemente aus einer Sequenz zurück. + Ein , das unterschiedliche Elemente aus enthält. + Das , aus dem Duplikate entfernt werden sollen. + Ein zum Vergleichen von Werten. + Der Typ der Elemente von . + + oder ist null. + + + Gibt das Element an einem angegebenen Index in einer Sequenz zurück. + Das Element an der angegebenen Position in . + Ein , aus dem ein Element zurückgegeben werden soll. + Der auf 0 (null) basierende Index des abzurufenden Elements. + Der Typ der Elemente von . + + ist null. + + ist kleiner als 0. + + + Gibt das Element an einem angegebenen Index in einer Sequenz oder einen Standardwert zurück, wenn der Index außerhalb des gültigen Bereichs liegt. + default(), wenn außerhalb der Begrenzungen von liegt, andernfalls das Element an der angegebenen Position in . + Ein , aus dem ein Element zurückgegeben werden soll. + Der auf 0 (null) basierende Index des abzurufenden Elements. + Der Typ der Elemente von . + + ist null. + + + Erzeugt die Differenzmenge zweier Sequenzen mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Werten. + Ein , das die Differenzmenge der beiden Sequenzen enthält. + Es wird ein zurückgegeben, dessen Elemente nicht auch in enthalten sind. + Die Rückgabesequenz enthält kein , dessen Elemente auch in der ersten Sequenz vorhanden sind. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Erzeugt mithilfe des angegebenen zum Vergleichen von Werten die Differenzmenge zweier Sequenzen. + Ein , das die Differenzmenge der beiden Sequenzen enthält. + Es wird ein zurückgegeben, dessen Elemente nicht auch in enthalten sind. + Die Rückgabesequenz enthält kein , dessen Elemente auch in der ersten Sequenz vorhanden sind. + Ein zum Vergleichen von Werten. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Gibt das erste Element einer Sequenz zurück. + Das erste Element in . + Das , dessen erstes Element zurückgegeben werden soll. + Der Typ der Elemente von . + + ist null. + Die Quellsequenz ist leer. + + + Gibt das erste Element einer Sequenz zurück, das eine angegebene Bedingung erfüllt. + Das erste Element in , das in erfolgreich überprüft wird. + Ein , aus dem ein Element zurückgegeben werden soll. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + Kein Element erfüllt die Bedingung in .- oder -Die Quellsequenz ist leer. + + + Gibt das erste Element einer Sequenz zurück, oder einen Standardwert, wenn die Sequenz keine Elemente enthält. + default(), wenn leer ist, andernfalls das erste Element in . + Das , dessen erstes Element zurückgegeben werden soll. + Der Typ der Elemente von . + + ist null. + + + Gibt das erste Element einer Sequenz zurück, das eine angegebene Bedingung erfüllt, oder einen Standardwert, wenn ein solches Element nicht gefunden wird. + default(), wenn leer ist oder wenn kein Element die von angegebene Überprüfung besteht. Andernfalls das erste Element in , das die von angegebene Überprüfung besteht. + Ein , aus dem ein Element zurückgegeben werden soll. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion. + Ein IQueryable<IGrouping<TKey, TSource>> in C# oder ein IQueryable(Of IGrouping(Of TKey, TSource)) in Visual Basic, wobei jedes -Objekt eine Sequenz von Objekten und einen Schlüssel enthält. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und vergleicht die Schlüssel mithilfe eines angegebenen Vergleichs. + Ein IQueryable<IGrouping<TKey, TSource>> in C# oder ein IQueryable(Of IGrouping(Of TKey, TSource)) in Visual Basic, wobei jedes eine Sequenz von Objekten und einen Schlüssel enthält. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + + , oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und projiziert die Elemente für jede Gruppe mithilfe einer angegebenen Funktion. + Ein IQueryable<IGrouping<TKey, TElement>> in C# oder ein IQueryable(Of IGrouping(Of TKey, TElement)) in Visual Basic, wobei jedes eine Sequenz von Objekten vom Typ und einen Schlüssel enthält. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Eine Funktion, mit der jedes Quellelement einem Element in einem zugeordnet wird. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + Der Typ der Elemente in jedem . + + , oder ist null. + + + Gruppiert die Elemente einer Sequenz und projiziert die Elemente jeder Gruppe mithilfe einer angegebenen Funktion.Schlüsselwerte werden mithilfe eines angegebenen Vergleichs verglichen. + Ein IQueryable<IGrouping<TKey, TElement>> in C# oder ein IQueryable(Of IGrouping(Of TKey, TElement)) in Visual Basic, wobei jedes eine Sequenz von Objekten vom Typ und einen Schlüssel enthält. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Eine Funktion, mit der jedes Quellelement einem Element in einem zugeordnet wird. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + Der Typ der Elemente in jedem . + + , , oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und erstellt aus jeder Gruppe und ihrem Schlüssel einen Ergebniswert.Die Elemente jeder Gruppe werden mithilfe einer angegebenen Funktion projiziert. + Ein T:System.Linq.IQueryable`1, das über das Typargument verfügt und in dem jedes Element eine Projektion über einer Gruppe und ihrem Schlüssel darstellt. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Eine Funktion, mit der jedes Quellelement einem Element in einem zugeordnet wird. + Eine Funktion, mit der aus jeder Gruppe ein Ergebniswert erstellt wird. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + Der Typ der Elemente in jedem . + Der Typ des von zurückgegebenen Ergebniswerts. + + , , oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und erstellt aus jeder Gruppe und ihrem Schlüssel einen Ergebniswert.Schlüssel werden mithilfe eines angegebenen Vergleichs verglichen, und die Elemente jeder Gruppe werden mithilfe einer angegebenen Funktion projiziert. + Ein T:System.Linq.IQueryable`1, das über das Typargument verfügt und in dem jedes Element eine Projektion über einer Gruppe und ihrem Schlüssel darstellt. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Eine Funktion, mit der jedes Quellelement einem Element in einem zugeordnet wird. + Eine Funktion, mit der aus jeder Gruppe ein Ergebniswert erstellt wird. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + Der Typ der Elemente in jedem . + Der Typ des von zurückgegebenen Ergebniswerts. + + , , , oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und erstellt aus jeder Gruppe und ihrem Schlüssel einen Ergebniswert. + Ein T:System.Linq.IQueryable`1, das über das Typargument verfügt und in dem jedes Element eine Projektion über einer Gruppe und ihrem Schlüssel darstellt. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Eine Funktion, mit der aus jeder Gruppe ein Ergebniswert erstellt wird. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + Der Typ des von zurückgegebenen Ergebniswerts. + + , oder ist null. + + + Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und erstellt aus jeder Gruppe und ihrem Schlüssel einen Ergebniswert.Schlüssel werden mithilfe eines angegebenen Vergleichs verglichen. + Ein T:System.Linq.IQueryable`1, das über das Typargument verfügt und in dem jedes Element eine Projektion über einer Gruppe und ihrem Schlüssel darstellt. + Ein , dessen Elemente gruppiert werden sollen. + Eine Funktion zum Extrahieren des Schlüssels für jedes Element. + Eine Funktion, mit der aus jeder Gruppe ein Ergebniswert erstellt wird. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der in dargestellten Funktion zurückgegeben wird. + Der Typ des von zurückgegebenen Ergebniswerts. + + , , oder ist null. + + + Korreliert die Elemente von zwei Sequenzen anhand der Gleichheit der Schlüssel und gruppiert die Ergebnisse.Schlüssel werden mithilfe des Standardgleichheitsvergleichs verglichen. + Ein , das Elemente vom Typ enthält, die durch Ausführen eines Gruppenjoins von zwei Sequenzen ermittelt werden. + Die erste zu verknüpfende Sequenz. + Die Sequenz, die mit der ersten Sequenz verknüpft werden soll. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der ersten Sequenz. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der zweiten Sequenz. + Eine Funktion zum Erstellen eines Ergebniselements anhand eines Elements aus der ersten Sequenz und einer Auflistung von übereinstimmenden Elementen aus der zweiten Sequenz. + Der Typ der Elemente der ersten Sequenz. + Der Typ der Elemente der zweiten Sequenz. + Der Typ der von den Schlüsselauswahlfunktionen zurückgegebenen Schlüssel. + Der Typ der Ergebniselemente. + + , , , oder ist null. + + + Korreliert die Elemente von zwei Sequenzen anhand der Gleichheit der Schlüssel und gruppiert die Ergebnisse.Schlüssel werden mithilfe eines angegebenen verglichen. + Ein , das Elemente vom Typ enthält, die durch Ausführen eines Gruppenjoins von zwei Sequenzen ermittelt werden. + Die erste zu verknüpfende Sequenz. + Die Sequenz, die mit der ersten Sequenz verknüpft werden soll. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der ersten Sequenz. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der zweiten Sequenz. + Eine Funktion zum Erstellen eines Ergebniselements anhand eines Elements aus der ersten Sequenz und einer Auflistung von übereinstimmenden Elementen aus der zweiten Sequenz. + Ein Vergleich zum Hashen und Vergleichen von Schlüsseln. + Der Typ der Elemente der ersten Sequenz. + Der Typ der Elemente der zweiten Sequenz. + Der Typ der von den Schlüsselauswahlfunktionen zurückgegebenen Schlüssel. + Der Typ der Ergebniselemente. + + , , , oder ist null. + + + Erzeugt die Schnittmenge zweier Sequenzen mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Werten. + Eine Sequenz, die die Schnittmenge der beiden Sequenzen enthält. + Eine Sequenz, deren unterschiedliche Elemente, die auch in vorhanden sind, zurückgegeben werden. + Eine Sequenz, deren unterschiedliche Elemente, die auch in der ersten Sequenz vorhanden sind, zurückgegeben werden. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Erzeugt mithilfe des angegebenen zum Vergleichen von Werten die Schnittmenge von zwei Sequenzen. + Ein , das die Schnittmenge der beiden Sequenzen enthält. + Ein , dessen unterschiedliche Elemente, die auch in vorhanden sind, zurückgegeben werden. + Ein , dessen unterschiedliche Elemente, die auch in der ersten Sequenz vorhanden sind, zurückgegeben werden. + Ein zum Vergleichen von Werten. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Korreliert die Elemente von zwei Sequenzen auf der Grundlage von übereinstimmenden Schlüsseln.Schlüssel werden mithilfe des Standardgleichheitsvergleichs verglichen. + Ein , für das Elemente vom Typ durch Ausführen eines inneren Joins von zwei Sequenzen ermittelt werden. + Die erste zu verknüpfende Sequenz. + Die Sequenz, die mit der ersten Sequenz verknüpft werden soll. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der ersten Sequenz. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der zweiten Sequenz. + Eine Funktion zum Erstellen eines Ergebniselements aus zwei übereinstimmenden Elementen. + Der Typ der Elemente der ersten Sequenz. + Der Typ der Elemente der zweiten Sequenz. + Der Typ der von den Schlüsselauswahlfunktionen zurückgegebenen Schlüssel. + Der Typ der Ergebniselemente. + + , , , oder ist null. + + + Korreliert die Elemente von zwei Sequenzen auf der Grundlage von übereinstimmenden Schlüsseln.Schlüssel werden mithilfe eines angegebenen verglichen. + Ein , für das Elemente vom Typ durch Ausführen eines inneren Joins von zwei Sequenzen ermittelt werden. + Die erste zu verknüpfende Sequenz. + Die Sequenz, die mit der ersten Sequenz verknüpft werden soll. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der ersten Sequenz. + Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der zweiten Sequenz. + Eine Funktion zum Erstellen eines Ergebniselements aus zwei übereinstimmenden Elementen. + Ein zum Hashen und Vergleichen von Schlüsseln. + Der Typ der Elemente der ersten Sequenz. + Der Typ der Elemente der zweiten Sequenz. + Der Typ der von den Schlüsselauswahlfunktionen zurückgegebenen Schlüssel. + Der Typ der Ergebniselemente. + + , , , oder ist null. + + + Gibt das letzte Element in einer Sequenz zurück. + Der Wert an der letzten Position . + Ein , dessen letztes Element zurückgegeben werden soll. + Der Typ der Elemente von . + + ist null. + Die Quellsequenz ist leer. + + + Gibt das letzte Element einer Sequenz zurück, das eine angegebene Bedingung erfüllt. + Das letzte Element in , das die von angegebene Überprüfung besteht. + Ein , aus dem ein Element zurückgegeben werden soll. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + Kein Element erfüllt die Bedingung in .- oder -Die Quellsequenz ist leer. + + + Gibt das letzte Element in einer Sequenz zurück, oder einen Standardwert, wenn die Sequenz keine Elemente enthält. + default(), wenn leer ist, andernfalls das letzte Element in . + Ein , dessen letztes Element zurückgegeben werden soll. + Der Typ der Elemente von . + + ist null. + + + Gibt das letzte Element einer Sequenz zurück, das eine Bedingung erfüllt, oder einen Standardwert, wenn ein solches Element nicht gefunden wird. + default(), wenn leer ist oder wenn keine Elemente von der Prädikatfunktion erfolgreich überprüft werden. Andernfalls das letzte Element von , das von der Prädikatfunktion erfolgreich überprüft wird. + Ein , aus dem ein Element zurückgegeben werden soll. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Gibt ein zurück, das die Gesamtanzahl der Elemente in einer Sequenz darstellt. + Die Anzahl der Elemente in . + Ein , das die zu zählenden Elemente enthält. + Der Typ der Elemente von . + + ist null. + Die Anzahl der Elemente überschreitet . + + + Gibt ein zurück, das die Anzahl der Elemente in einer Sequenz darstellt, die eine Bedingung erfüllen. + Die Anzahl der Elemente in , die die Bedingung in der Prädikatfunktion erfüllen. + Ein , das die zu zählenden Elemente enthält. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + Die Anzahl der übereinstimmenden Elemente überschreitet . + + + Gibt den Höchstwert in einem generischen zurück. + Der Höchstwert in der Sequenz. + Eine Sequenz von Werten, deren Höchstwert bestimmt werden soll. + Der Typ der Elemente von . + + ist null. + + + Ruft für jedes Element eines generischen eine Projektionsfunktion auf und gibt den höchsten Ergebniswert zurück. + Der Höchstwert in der Sequenz. + Eine Sequenz von Werten, deren Höchstwert bestimmt werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + Der Typ des Werts, der von der durch dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Gibt den Mindestwert eines generischen zurück. + Der Mindestwert in der Sequenz. + Eine Sequenz von Werten, deren Mindestwert bestimmt werden soll. + Der Typ der Elemente von . + + ist null. + + + Ruft für jedes Element eines generischen eine Projektionsfunktion auf und gibt den niedrigsten Ergebniswert zurück. + Der Mindestwert in der Sequenz. + Eine Sequenz von Werten, deren Mindestwert bestimmt werden soll. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + Der Typ des Werts, der von der durch dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Filtert die Elemente eines anhand eines angegebenen Typs. + Eine Auflistung, die die Elemente aus mit dem Typ enthält. + Ein , dessen Elemente gefiltert werden sollen. + Der Typ, nach dem die Elemente der Sequenz gefiltert werden sollen. + + ist null. + + + Sortiert die Elemente einer Sequenz in aufsteigender Reihenfolge nach einem Schlüssel. + Ein , dessen Elemente nach einem Schlüssel sortiert werden. + Eine Sequenz von anzuordnenden Werten. + Eine Funktion zum Extrahieren eines Schlüssels aus einem Element. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der durch dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Sortiert die Elemente einer Sequenz mithilfe eines angegebenen Vergleichs in aufsteigender Reihenfolge. + Ein , dessen Elemente nach einem Schlüssel sortiert werden. + Eine Sequenz von anzuordnenden Werten. + Eine Funktion zum Extrahieren eines Schlüssels aus einem Element. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der durch dargestellten Funktion zurückgegeben wird. + + , oder ist null. + + + Sortiert die Elemente einer Sequenz in absteigender Reihenfolge nach einem Schlüssel. + Ein , dessen Elemente in absteigender Reihenfolge nach einem Schlüssel sortiert werden. + Eine Sequenz von anzuordnenden Werten. + Eine Funktion zum Extrahieren eines Schlüssels aus einem Element. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der durch dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Sortiert die Elemente einer Sequenz mithilfe eines angegebenen Vergleichs in absteigender Reihenfolge. + Ein , dessen Elemente in absteigender Reihenfolge nach einem Schlüssel sortiert werden. + Eine Sequenz von anzuordnenden Werten. + Eine Funktion zum Extrahieren eines Schlüssels aus einem Element. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der durch dargestellten Funktion zurückgegeben wird. + + , oder ist null. + + + Kehrt die Reihenfolge der Elemente in einer Sequenz um. + Ein , dessen Elemente den Elementen der Eingabesequenz in umgekehrter Reihenfolge entsprechen. + Eine umzukehrende Sequenz von Werten. + Der Typ der Elemente von . + + ist null. + + + Projiziert jedes Element einer Sequenz in ein neues Format. + Ein , dessen Elemente das Ergebnis des Aufrufs einer Projektionsfunktion für jedes Element von sind. + Eine Sequenz von zu projizierenden Werten. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + Der Typ des Werts, der von der durch dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Projiziert jedes Element einer Sequenz in ein neues Format, indem der Index des Elements integriert wird. + Ein , dessen Elemente das Ergebnis des Aufrufs einer Projektionsfunktion für jedes Element von sind. + Eine Sequenz von zu projizierenden Werten. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + Der Typ des Werts, der von der durch dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Projiziert jedes Element einer Sequenz in ein und ruft für jedes Element darin eine Ergebnisauswahlfunktion auf.Die Ergebniswerte aus jeder Zwischensequenz werden zu einer einzigen eindimensionalen Sequenz zusammengefasst und zurückgegeben. + Ein , dessen Elemente erzeugt werden, indem für jedes Element von die 1:n-Projektionsfunktion aufgerufen wird und dann jedes so erzeugte Element der Sequenz und sein entsprechendes -Element einem Ergebniselement zugeordnet werden. + Eine Sequenz von zu projizierenden Werten. + Eine Projektionsfunktion, die auf jedes Element der Eingabesequenz angewendet werden soll. + Eine Projektionsfunktion, die auf jedes Element jeder Zwischensequenz angewendet werden soll. + Der Typ der Elemente von . + Der Typ der Zwischenelemente, die von der durch dargestellten Funktion erfasst werden. + Der Typ der Elemente in der resultierenden Sequenz. + + , oder ist null. + + + Projiziert jedes Element einer Sequenz in ein und fasst die resultierenden Sequenzen in einer einzigen Sequenz zusammen. + Ein , dessen Elemente das Ergebnis des Aufrufs einer 1:n-Projektionsfunktion für jedes Element der Eingabesequenz sind. + Eine Sequenz von zu projizierenden Werten. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + Der Typ der Elemente der Sequenz, die von der durch dargestellten Funktion zurückgegeben werden. + + oder ist null. + + + Projiziert jedes Element einer Sequenz in ein , das den Index des Quellelements enthält, von dem es erzeugt wurde.Für jedes Element jeder Zwischensequenz wird eine Ergebnisauswahlfunktion aufgerufen, und die Ergebniswerte werden zu einer einzigen eindimensionale Sequenz zusammengefasst und zurückgegeben. + Ein , dessen Elemente erzeugt werden, indem für jedes Element von die 1:n-Projektionsfunktion aufgerufen wird und dann jedes so erzeugte Element der Sequenz und sein entsprechendes -Element einem Ergebniselement zugeordnet werden. + Eine Sequenz von zu projizierenden Werten. + Eine Projektionsfunktion, die auf jedes Element der Eingabesequenz angewendet werden soll. Der zweite Parameter der Funktion stellt den Index des Quellelements dar. + Eine Projektionsfunktion, die auf jedes Element jeder Zwischensequenz angewendet werden soll. + Der Typ der Elemente von . + Der Typ der Zwischenelemente, die von der durch dargestellten Funktion erfasst werden. + Der Typ der Elemente in der resultierenden Sequenz. + + , oder ist null. + + + Projiziert jedes Element einer Sequenz in ein und fasst die resultierenden Sequenzen in einer einzigen Sequenz zusammen.Der Index jedes Quellelements wird im projizierten Format des jeweiligen Elements verwendet. + Ein , dessen Elemente das Ergebnis des Aufrufs einer 1:n-Projektionsfunktion für jedes Element der Eingabesequenz sind. + Eine Sequenz von zu projizierenden Werten. + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. Der zweite Parameter der Funktion stellt den Index des Quellelements dar. + Der Typ der Elemente von . + Der Typ der Elemente der Sequenz, die von der durch dargestellten Funktion zurückgegeben werden. + + oder ist null. + + + Bestimmt mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Elementen, ob zwei Sequenzen gleich sind. + true, wenn die zwei Quellsequenzen von gleicher Länge sind und ihre entsprechenden Elemente als gleich gelten, andernfalls false. + Ein dessen Elemente mit den Elementen von verglichen werden sollen. + Ein , dessen Elemente mit den Elementen der ersten Sequenz verglichen werden sollen. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Bestimmt mithilfe eines angegebenen zum Vergleichen von Elementen, ob zwei Sequenzen gleich sind. + true, wenn die zwei Quellsequenzen von gleicher Länge sind und ihre entsprechenden Elemente als gleich gelten, andernfalls false. + Ein dessen Elemente mit den Elementen von verglichen werden sollen. + Ein , dessen Elemente mit den Elementen der ersten Sequenz verglichen werden sollen. + Ein , der zum Vergleichen von Elementen verwendet werden soll. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Gibt das einzige Element einer Sequenz zurück und löst eine Ausnahme aus, wenn nicht genau ein Element in der Sequenz vorhanden ist. + Das einzige Element der Eingabesequenz. + Ein , dessen einziges Element zurückgegeben werden soll. + Der Typ der Elemente von . + + ist null. + + hat mehr als ein Element. + + + Gibt das einzige Element einer Sequenz zurück, das eine angegebene Bedingung erfüllt, und löst eine Ausnahme aus, wenn mehrere solche Elemente vorhanden sind. + Das einzige Element der Eingabesequenz, das die Bedingung in erfüllt. + Ein , aus dem ein einzelnes Element zurückgegeben werden soll. + Eine Funktion zum Überprüfen eines Elements auf eine Bedingung. + Der Typ der Elemente von . + + oder ist null. + Kein Element erfüllt die Bedingung in .- oder -Die Bedingung in wird von mehreren Elementen erfüllt - oder -Die Quellsequenz ist leer. + + + Gibt das einzige Element einer Sequenz zurück oder einen Standardwert, wenn die Sequenz leer ist. Diese Methode löst eine Ausnahme aus, wenn mehrere Elemente in der Sequenz vorhanden sind. + Das einzige Element der Eingabesequenz oder default(), wenn die Sequenz keine Elemente enthält. + Ein , dessen einziges Element zurückgegeben werden soll. + Der Typ der Elemente von . + + ist null. + + hat mehr als ein Element. + + + Gibt das einzige Element einer Sequenz zurück, das eine angegebene Bedingung erfüllt, oder einen Standardwert, wenn kein solches Element vorhanden ist. Diese Methode löst eine Ausnahme aus, wenn mehrere Elemente die Bedingung erfüllen. + Das einzige Element der Eingabesequenz, das die Bedingung in erfüllt, oder default(), wenn ein solches Element nicht gefunden wird. + Ein , aus dem ein einzelnes Element zurückgegeben werden soll. + Eine Funktion zum Überprüfen eines Elements auf eine Bedingung. + Der Typ der Elemente von . + + oder ist null. + Die Bedingung in wird von mehreren Elementen erfüllt + + + Umgeht eine festgelegte Anzahl von Elementen in einer Sequenz und gibt dann die übrigen Elemente zurück. + Ein , das Elemente enthält, die nach dem angegebenen Index in der Eingabesequenz auftreten. + Ein , aus dem Elemente zurückgegeben werden sollen. + Die Anzahl der Elemente, die übersprungen werden sollen, bevor die übrigen Elemente zurückgegeben werden. + Der Typ der Elemente von . + + ist null. + + + Umgeht Elemente in einer Sequenz, solange eine angegebene Bedingung true ist, und gibt dann die übrigen Elemente zurück. + Ein , das Elemente aus ab dem ersten Element in der linearen Reihe enthält, das die in angegebene Überprüfung nicht besteht. + Ein , aus dem Elemente zurückgegeben werden sollen. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Umgeht Elemente in einer Sequenz, solange eine angegebene Bedingung true ist, und gibt dann die übrigen Elemente zurück.In der Logik der Prädikatfunktion wird der Index des Elements verwendet. + Ein , das Elemente aus ab dem ersten Element in der linearen Reihe enthält, das die in angegebene Überprüfung nicht besteht. + Ein , aus dem Elemente zurückgegeben werden sollen. + Eine Funktion zum Überprüfen jedes Elements auf eine Bedingung. Der zweite Parameter der Funktion stellt den Index des Quellelements dar. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet die Summe einer Sequenz von -Werten. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, deren Summe berechnet werden soll. + + ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, deren Summe berechnet werden soll. + + ist null. + + + Berechnet die Summe einer Sequenz von -Werten. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, deren Summe berechnet werden soll. + + ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, deren Summe berechnet werden soll. + + ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, die NULL zulassen und deren Summe berechnet werden soll. + + ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, die NULL zulassen und deren Summe berechnet werden soll. + + ist null. + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, die NULL zulassen und deren Summe berechnet werden soll. + + ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, die NULL zulassen und deren Summe berechnet werden soll. + + ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, die NULL zulassen und deren Summe berechnet werden soll. + + ist null. + + + Berechnet die Summe einer Sequenz von -Werten. + Die Summe der Werte in der Sequenz. + Eine Sequenz von -Werten, deren Summe berechnet werden soll. + + ist null. + + + Berechnet die Summe einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet die Summe einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + Die Summe ist größer als . + + + Berechnet die Summe einer Sequenz von -Werten, die NULL zulassen, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Berechnet die Summe einer Sequenz von -Werten, die durch den Aufruf einer Projektionsfunktion für jedes Element der Eingabesequenz ermittelt wird. + Die Summe der projizierten Werte. + Eine Sequenz von Werten des Typs . + Eine Projektionsfunktion, die auf jedes Element angewendet werden soll. + Der Typ der Elemente von . + + oder ist null. + + + Gibt eine angegebene Anzahl von zusammenhängenden Elementen ab dem Anfang einer Sequenz zurück. + Ein , das die angegebene Anzahl von Elementen ab dem Anfang von enthält. + Die Sequenz, aus der Elemente zurückgegeben werden sollen. + Die Anzahl der zurückzugebenden Elemente. + Der Typ der Elemente von . + + ist null. + + + Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung true ist. + Ein , das Elemente aus der Eingabesequenz enthält, die vor dem Element auftreten, bei dem die von angegebene Überprüfung nicht mehr erfolgreich ist. + Die Sequenz, aus der Elemente zurückgegeben werden sollen. + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung true ist.In der Logik der Prädikatfunktion wird der Index des Elements verwendet. + Ein , das Elemente aus der Eingabesequenz enthält, die vor dem Element auftreten, bei dem die von angegebene Überprüfung nicht mehr erfolgreich ist. + Die Sequenz, aus der Elemente zurückgegeben werden sollen. + Eine Funktion zum Überprüfen jedes Elements auf eine Bedingung. Der zweite Parameter der Funktion stellt den Index des Elements in der Quellsequenz dar. + Der Typ der Elemente von . + + oder ist null. + + + Führt eine nachfolgende Sortierung der Elemente in einer Sequenz in aufsteigender Reihenfolge nach einem Schlüssel durch. + Ein , dessen Elemente nach einem Schlüssel sortiert werden. + Ein mit den zu sortierenden Elementen. + Eine Funktion zum Extrahieren eines Schlüssels aus jedem Element. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der von dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Führt mithilfe eines angegebenen Vergleichs eine nachfolgende Sortierung der Elemente in einer Sequenz in aufsteigender Reihenfolge durch. + Ein , dessen Elemente nach einem Schlüssel sortiert werden. + Ein mit den zu sortierenden Elementen. + Eine Funktion zum Extrahieren eines Schlüssels aus jedem Element. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der von dargestellten Funktion zurückgegeben wird. + + , oder ist null. + + + Führt eine nachfolgende Sortierung der Elemente in einer Sequenz in absteigender Reihenfolge nach einem Schlüssel durch. + Ein , dessen Elemente in absteigender Reihenfolge nach einem Schlüssel sortiert werden. + Ein mit den zu sortierenden Elementen. + Eine Funktion zum Extrahieren eines Schlüssels aus jedem Element. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der von dargestellten Funktion zurückgegeben wird. + + oder ist null. + + + Führt mithilfe eines angegebenen Vergleichs eine nachfolgende Sortierung der Elemente in einer Sequenz in absteigender Reihenfolge durch. + Eine Auflistung, deren Elemente in absteigender Reihenfolge nach einem Schlüssel sortiert werden. + Ein mit den zu sortierenden Elementen. + Eine Funktion zum Extrahieren eines Schlüssels aus jedem Element. + Ein zum Vergleichen von Schlüsseln. + Der Typ der Elemente von . + Der Typ des Schlüssels, der von der -Funktion zurückgegeben wird. + + , oder ist null. + + + Erzeugt die Vereinigungsmenge von zwei Sequenzen mithilfe des Standardgleichheitsvergleichs. + Ein , das die Elemente aus beiden Eingabesequenzen ohne Duplikate enthält. + Eine Sequenz, deren unterschiedliche Elemente den ersten Satz für die Gesamtmengenbildung darstellen. + Eine Sequenz, deren unterschiedliche Elemente den zweiten Satz für die Gesamtmengenbildung darstellen. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Erzeugt mithilfe eines angegebenen die Vereinigungsmenge von zwei Sequenzen. + Ein , das die Elemente aus beiden Eingabesequenzen ohne Duplikate enthält. + Eine Sequenz, deren unterschiedliche Elemente den ersten Satz für die Gesamtmengenbildung darstellen. + Eine Sequenz, deren unterschiedliche Elemente den zweiten Satz für die Gesamtmengenbildung darstellen. + Ein zum Vergleichen von Werten. + Der Typ der Elemente der Eingabesequenzen. + + oder ist null. + + + Filtert eine Sequenz von Werten nach einem Prädikat. + Ein mit Elementen aus der Eingabesequenz, die die von angegebene Bedingung erfüllen. + Ein zu filterndes . + Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird. + Der Typ der Elemente von . + + oder ist null. + + + Filtert eine Sequenz von Werten nach einem Prädikat.In der Logik der Prädikatfunktion wird der Index der einzelnen Elemente verwendet. + Ein mit Elementen aus der Eingabesequenz, die die von angegebene Bedingung erfüllen. + Ein zu filterndes . + Eine Funktion zum Überprüfen jedes Elements auf eine Bedingung. Der zweite Parameter der Funktion stellt den Index des Elements in der Quellsequenz dar. + Der Typ der Elemente von . + + oder ist null. + + + Führt zwei Sequenzen mit der angegebenen Prädikatfunktion zusammen. + Ein , das die zusammengeführten Elemente der beiden Eingabesequenzen enthält. + Die erste Sequenz, die zusammengeführt werden soll. + Die zweite Sequenz, die zusammengeführt werden soll. + Eine Funktion, die angibt, wie die Elemente der zwei Sequenzen zusammengeführt werden sollen. + Der Typ der Elemente der ersten Eingabesequenz. + Der Typ der Elemente der zweiten Eingabesequenz. + Der Typ der Elemente in der Ergebnissequenz. + + oder ist null. + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/es/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/es/System.Linq.Queryable.xml new file mode 100644 index 0000000..091a1a0 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/es/System.Linq.Queryable.xml @@ -0,0 +1,1375 @@ + + + + System.Linq.Queryable + + + + Representa un árbol de expresión y proporciona la funcionalidad para ejecutar este árbol después de rescribirlo. + + + Inicializa una nueva instancia de la clase . + + + Representa un árbol de expresión y proporciona la funcionalidad para ejecutar este árbol después de rescribirlo. + Tipo de datos del valor que es el resultado de ejecutar el árbol de expresión. + + + Inicializa una nueva instancia de la clase . + Árbol de expresión para asociar a la nueva instancia. + + + Representa una clase como origen de datos de . + + + Inicializa una nueva instancia de la clase . + + + Representa una colección como origen de los datos . + Tipo de los datos de la colección. + + + Inicializa una nueva instancia de la clase y la asocia con una colección . + Una colección para asociar a la nueva instancia. + + + Inicializa una nueva instancia de la clase y la asocia con un árbol de expresión especificado. + Árbol de expresión para asociar a la nueva instancia. + + + Devuelve un enumerador que puede recorrer en iteración la colección asociada o, si es nulo, la colección que es el resultado de rescribir el árbol de expresión asociado como consulta en un origen de datos y de ejecutarlo. + Enumerador que se puede utilizar para recorrer en iteración el origen de datos asociado. + + + Devuelve un enumerador que puede recorrer en iteración la colección asociada o, si es nulo, la colección que es el resultado de rescribir el árbol de expresión asociado como consulta en un origen de datos y de ejecutarlo. + Enumerador que se puede utilizar para recorrer en iteración el origen de datos asociado. + + + Obtiene el tipo de datos de la colección que esta instancia representa. + Tipo de datos de la colección que esta instancia representa. + + + Obtiene el árbol de expresión que está asociado o que representa esta instancia. + Árbol de expresión que está asociado o que representa esta instancia. + + + Obtiene el proveedor de consultas que está asociado a esta instancia. + Proveedor de consultas que está asociado a esta instancia. + + + Construye un nuevo objeto y lo asocia a un árbol de expresión especificado que representa una colección de datos. + Objeto EnumerableQuery asociado a . + Árbol de expresión que se va a ejecutar. + Tipo de datos de la colección que representa. + + + Construye un nuevo objeto y lo asocia a un árbol de expresión especificado que representa una colección de datos. + Objeto asociado a . + Árbol de expresión que representa una colección de datos. + + + Ejecuta una expresión después de rescribirla para llamar a los métodos en lugar de a los métodos en cualquier origen de datos enumerable que no pueda ser consultado por los métodos . + Valor que es el resultado de ejecutar . + Árbol de expresión que se va a ejecutar. + Tipo de datos de la colección que representa. + + + Ejecuta una expresión después de rescribirla para llamar a los métodos en lugar de a los métodos en cualquier origen de datos enumerable que no pueda ser consultado por los métodos . + Valor que es el resultado de ejecutar . + Árbol de expresión que se va a ejecutar. + + + Devuelve una representación textual de la colección enumerable o, si es null, del árbol de expresión asociado a esta instancia. + Representación textual de la colección enumerable o, si es null, del árbol de expresión asociado a esta instancia. + + + Proporciona un conjunto de métodos static (Shared en Visual Basic) para consultar estructuras de datos que implementan . + + + Aplica una función de acumulador a una secuencia. + Valor final del acumulador. + Secuencia a la que se va a agregar. + Función de acumulador que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + no contiene elementos. + + + Aplica una función de acumulador a una secuencia.El valor de inicialización especificado se utiliza como valor de inicio del acumulador. + Valor final del acumulador. + Secuencia a la que se va a agregar. + Valor de inicio del acumulador. + Función de acumulador que se va a invocar en cada elemento. + Tipo de los elementos de . + Tipo del valor del acumulador. + + o es null. + + + Aplica una función de acumulador a una secuencia.El valor de inicialización especificado se utiliza como valor inicial del acumulador y la función especificada se utiliza para seleccionar el valor resultante. + El valor final del acumulador transformado. + Secuencia a la que se va a agregar. + Valor de inicio del acumulador. + Función de acumulador que se va a invocar en cada elemento. + Función que va a transformar el valor final del acumulador en el valor del resultado. + Tipo de los elementos de . + Tipo del valor del acumulador. + Tipo del valor resultante. + + o o es null. + + + Determina si todos los elementos de una secuencia satisfacen una condición. + true si todos los elementos de la secuencia de origen pasan la prueba del predicado especificado o si la secuencia está vacía; de lo contrario, false. + Secuencia en cuyos elementos se va a comprobar una condición. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Determina si una secuencia contiene elementos. + true si la secuencia de origen contiene elementos; de lo contrario, false. + Secuencia que se va a comprobar si está vacía. + Tipo de los elementos de . + + es null. + + + Determina si algún elemento de una secuencia satisface una condición. + true si algún elemento de la secuencia de origen pasa la prueba del predicado especificado; de lo contrario, false. + Secuencia en cuyos elementos se va a comprobar una condición. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Convierte una interfaz genérica en una interfaz genérica. + + que representa la secuencia de entrada. + Secuencia que se va a convertir. + Tipo de los elementos de . + + es null. + + + Convierte una interfaz en . + + que representa la secuencia de entrada. + Secuencia que se va a convertir. + + no implementa para algunos parámetros . + + es null. + + + Calcula el promedio de una secuencia de valores . + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + + es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores . + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + + es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores . + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + + es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores . + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + + es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL. + Promedio de la secuencia de valores o null si la secuencia de origen está vacía o contiene sólo valores null. + Secuencia de valores que aceptan valores NULL cuyo promedio se va a calcular. + + es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL. + Promedio de la secuencia de valores o null si la secuencia de origen está vacía o contiene sólo valores null. + Secuencia de valores que aceptan valores NULL cuyo promedio se va a calcular. + + es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL. + Promedio de la secuencia de valores o null si la secuencia de origen está vacía o contiene sólo valores null. + Secuencia de valores que aceptan valores NULL cuyo promedio se va a calcular. + + es null. + + + Calcular el promedio de una secuencia de valores que aceptan valores NULL. + Promedio de la secuencia de valores o null si la secuencia de origen está vacía o contiene sólo valores null. + Una secuencia de valores que aceptan valores NULL cuyo promedio se va a calcular. + + es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL. + Promedio de la secuencia de valores o null si la secuencia de origen está vacía o contiene sólo valores null. + Secuencia de valores que aceptan valores NULL cuyo promedio se va a calcular. + + es null. + + + Calcula el promedio de una secuencia de valores . + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + + es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + El promedio de la secuencia de valores. + Secuencia de valores que se utilizan para calcular un promedio. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + no contiene elementos. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + Promedio de la secuencia de valores o null si la secuencia está vacía o contiene sólo valores null. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + Promedio de la secuencia de valores o null si la secuencia está vacía o contiene sólo valores null. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + Promedio de la secuencia de valores o null si la secuencia está vacía o contiene sólo valores null. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + Promedio de la secuencia de valores o null si la secuencia está vacía o contiene sólo valores null. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula el promedio de una secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + Promedio de la secuencia de valores o null si la secuencia está vacía o contiene sólo valores null. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula el promedio de una secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + El promedio de la secuencia de valores. + Secuencia de valores cuyo promedio se va a calcular. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + no contiene elementos. + + + Convierte los elementos de en el tipo especificado. + + que contiene cada elemento de la secuencia de origen convertido al tipo especificado. + + que contiene los elementos que se van a convertir. + Tipo al que se convierten los elementos de . + + es null. + Un elemento de la secuencia no se puede convertir al tipo . + + + Concatena dos secuencias. + + que contiene los elementos concatenados de las dos secuencias de entrada. + Primera secuencia que se va a concatenar. + Secuencia que se va a concatenar con la primera secuencia. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Determina si una secuencia contiene un elemento especificado utilizando el comparador de igualdad predeterminado. + true si la secuencia de entrada contiene un elemento que tiene el valor especificado; de lo contrario, false. + + en el que se va a buscar . + Objeto que se va a buscar en la secuencia. + Tipo de los elementos de . + + es null. + + + Determina si una secuencia contiene un elemento especificado utilizando un objeto determinado. + true si la secuencia de entrada contiene un elemento que tiene el valor especificado; de lo contrario, false. + + en el que se va a buscar . + Objeto que se va a buscar en la secuencia. + + para comparar valores. + Tipo de los elementos de . + + es null. + + + Devuelve el número de elementos de una secuencia. + El número de elementos de la secuencia de entrada. + + que contiene los elementos que se van a contar. + Tipo de los elementos de . + + es null. + El número de elementos de es mayor que . + + + Devuelve el número de elementos de la secuencia especificada que satisfacen una condición. + El número de elementos de la secuencia que satisfacen la condición de la función de predicado. + + que contiene los elementos que se van a contar. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + El número de elementos de es mayor que . + + + Devuelve los elementos de la secuencia especificada o el valor predeterminado del parámetro de tipo en una colección singleton si la secuencia está vacía. + + que contiene default() si está vacío; de lo contrario, . + + para el que se va a devolver un valor predeterminado si está vacío. + Tipo de los elementos de . + + es null. + + + Devuelve los elementos de la secuencia especificada o el valor especificado en una colección singleton si la secuencia está vacía. + + que contiene si está vacío; de lo contrario, . + + para el que se va a devolver el valor especificado si está vacío. + Valor que se va a devolver si la secuencia está vacía. + Tipo de los elementos de . + + es null. + + + Devuelve diversos elementos de una secuencia utilizando el comparador de igualdad predeterminado para comparar los valores. + Una interfaz que contiene diversos elementos de . + + del que se van a quitar los elementos duplicados. + Tipo de los elementos de . + + es null. + + + Devuelve diversos elementos de una secuencia utilizando un objeto especificado para comparar los valores. + Una interfaz que contiene diversos elementos de . + + del que se van a quitar los elementos duplicados. + + para comparar valores. + Tipo de los elementos de . + + o es null. + + + Devuelve el elemento situado en un índice especificado de una secuencia. + El elemento situado en la posición especificada de . + + del que se va a devolver un elemento. + Índice de base cero del elemento que se debe recuperar. + Tipo de los elementos de . + + es null. + + es menor que cero. + + + Devuelve el elemento situado en un índice especificado de una secuencia o un valor predeterminado si el índice está fuera del intervalo. + default () si está fuera de los límites de ; de lo contrario, el elemento situado en la posición especificada de . + + del que se va a devolver un elemento. + Índice de base cero del elemento que se debe recuperar. + Tipo de los elementos de . + + es null. + + + Proporciona la diferencia de conjuntos de dos secuencias utilizando el comparador de igualdad predeterminado para comparar los valores. + + que contiene la diferencia de conjuntos de las dos secuencias. + + cuyos elementos que no se encuentren en se van a devolver. + + cuyos elementos que se encuentren también en la primera secuencia no aparecerán en la secuencia devuelta. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Proporciona la diferencia de conjuntos de dos secuencias utilizando el objeto especificado para comparar los valores. + + que contiene la diferencia de conjuntos de las dos secuencias. + + cuyos elementos que no se encuentren en se van a devolver. + + cuyos elementos que se encuentren también en la primera secuencia no aparecerán en la secuencia devuelta. + + para comparar valores. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Devuelve el primer elemento de una secuencia. + El primer elemento de . + + del que se va a devolver el primer elemento. + Tipo de los elementos de . + + es null. + La secuencia de origen está vacía. + + + Devuelve el primer elemento de una secuencia que satisface una condición especificada. + El primer elemento de que pasa la prueba de . + + del que se va a devolver un elemento. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + Ningún elemento satisface la condición de .O bienLa secuencia de origen está vacía. + + + Devuelve el primer elemento de una secuencia o un valor predeterminado si la secuencia no contiene elementos. + default () si está vacío; de lo contrario, el primer elemento de . + + del que se va a devolver el primer elemento. + Tipo de los elementos de . + + es null. + + + Devuelve el primer elemento de una secuencia que satisface una condición especificada o un valor predeterminado si no se encuentra ningún elemento. + default () si está vacío o si ningún elemento pasa la prueba especificada en ; de lo contrario, el primer elemento de que pasa la prueba especificada en . + + del que se va a devolver un elemento. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Agrupa los elementos de una secuencia según una función del selector de claves especificada. + IQueryable<IGrouping<TKey, TSource>> en C# o IQueryable(Of IGrouping(Of TKey, TSource)) en Visual Basic donde cada objeto contiene una secuencia de objetos y una clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + + o es null. + + + Agrupa los elementos de una secuencia según una función del selector de calves especificada y compara las claves utilizando un comparador especificado. + IQueryable<IGrouping<TKey, TSource>> en C# o IQueryable(Of IGrouping(Of TKey, TSource)) en Visual Basic donde cada contiene una secuencia de objetos y una clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + + o o es null. + + + Agrupa los elementos de una secuencia según una función del selector de claves especificada y proyecta los elementos de cada grupo utilizando una función determinada. + IQueryable<IGrouping<TKey, TElement>> en C# o IQueryable(Of IGrouping(Of TKey, TElement)) en Visual Basic donde cada contiene una secuencia de objetos de tipo y una clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Función que asigna cada elemento de origen a un elemento de . + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + Tipo de los elementos de cada . + + o o es null. + + + Agrupa los elementos de una secuencia y proyecta los elementos de cada grupo utilizando una función especificada.Los valores de clave se comparan utilizando un comparador especificado. + IQueryable<IGrouping<TKey, TElement>> en C# o IQueryable(Of IGrouping(Of TKey, TElement)) en Visual Basic donde cada contiene una secuencia de objetos de tipo y una clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Función que asigna cada elemento de origen a un elemento de . + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + Tipo de los elementos de cada . + + o o o es null. + + + Agrupa los elementos de una secuencia según una función del selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave.Los elementos de cada grupo se proyectan utilizando una función determinada. + Objeto T:System.Linq.IQueryable`1 que tiene un argumento de tipo y en el que cada elemento representa una proyección sobre un grupo y su clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Función que asigna cada elemento de origen a un elemento de . + Función que va a crear un valor de resultado a partir de cada grupo. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + Tipo de los elementos de cada . + Tipo del valor de resultado devuelto por . + + o o o es null. + + + Agrupa los elementos de una secuencia según una función del selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave.Las claves se comparan utilizando un comparador especificado y los elementos de cada grupo se proyectan utilizando una función determinada. + Objeto T:System.Linq.IQueryable`1 que tiene un argumento de tipo y en el que cada elemento representa una proyección sobre un grupo y su clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Función que asigna cada elemento de origen a un elemento de . + Función que va a crear un valor de resultado a partir de cada grupo. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + Tipo de los elementos de cada . + Tipo del valor de resultado devuelto por . + + o o o o es null. + + + Agrupa los elementos de una secuencia según una función del selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave. + Objeto T:System.Linq.IQueryable`1 que tiene un argumento de tipo y en el que cada elemento representa una proyección sobre un grupo y su clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Función que va a crear un valor de resultado a partir de cada grupo. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + Tipo del valor de resultado devuelto por . + + o o es null. + + + Agrupa los elementos de una secuencia según una función del selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave.Las claves se comparan utilizando un comparador determinado. + Objeto T:System.Linq.IQueryable`1 que tiene un argumento de tipo y en el que cada elemento representa una proyección sobre un grupo y su clave. + + cuyos elementos se van a agrupar. + Función para extraer la clave de cada elemento. + Función que va a crear un valor de resultado a partir de cada grupo. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + Tipo del valor de resultado devuelto por . + + o o o es null. + + + Establece una correlación entre los elementos de dos secuencias basándose en la igualdad de clave y agrupa los resultados.El comparador de igualdad predeterminado se usa para comparar claves. + + que contiene elementos de tipo que se han obtenido al realizar una combinación agrupada de dos secuencias. + Primera secuencia que se va a combinar. + Secuencia que se va a combinar con la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la segunda secuencia. + Función para crear un elemento de resultado a partir de un elemento de la primera secuencia y una colección de elementos coincidentes de la segunda. + Tipo de los elementos de la primera secuencia. + Tipo de los elementos de la segunda secuencia. + Tipo de las claves devueltas por las funciones del selector de claves. + Tipo de los elementos del resultado. + + o o o o es null. + + + Establece una correlación entre los elementos de dos secuencias basándose en la igualdad de clave y agrupa los resultados.Se usa un objeto especificado para comparar claves. + + que contiene elementos de tipo que se han obtenido al realizar una combinación agrupada de dos secuencias. + Primera secuencia que se va a combinar. + Secuencia que se va a combinar con la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la segunda secuencia. + Función para crear un elemento de resultado a partir de un elemento de la primera secuencia y una colección de elementos coincidentes de la segunda. + Comparador que va a aplicar un algoritmo hash y a comparar las claves. + Tipo de los elementos de la primera secuencia. + Tipo de los elementos de la segunda secuencia. + Tipo de las claves devueltas por las funciones del selector de claves. + Tipo de los elementos del resultado. + + o o o o es null. + + + Proporciona la intersección de conjuntos de dos secuencias utilizando el comparador de igualdad predeterminado para comparar los valores. + Una secuencia que contiene la intersección de conjuntos de las dos secuencias. + Secuencia de la que se devuelven los elementos que también aparecen en . + Secuencia de la que se devuelven los elementos que también aparecen en la primera secuencia. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Proporciona la intersección de conjuntos de dos secuencias utilizando el objeto especificado para comparar los valores. + Una interfaz que contiene la intersección de conjuntos de las dos secuencias. + Una interfaz de la que se devuelven los elementos que también aparecen en . + Una interfaz de la que se devuelven los elementos que también aparecen en la primera secuencia. + + para comparar valores. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Establece la correlación de dos secuencias basándose en claves coincidentes.El comparador de igualdad predeterminado se usa para comparar claves. + Una interfaz que tiene elementos de tipo que se han obtenido al realizar una combinación interna de dos secuencias. + Primera secuencia que se va a combinar. + Secuencia que se va a combinar con la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la segunda secuencia. + Función que va a crear un elemento de resultado a partir de dos elementos coincidentes. + Tipo de los elementos de la primera secuencia. + Tipo de los elementos de la segunda secuencia. + Tipo de las claves devueltas por las funciones del selector de claves. + Tipo de los elementos del resultado. + + o o o o es null. + + + Establece la correlación de dos secuencias basándose en claves coincidentes.Se usa un objeto especificado para comparar claves. + Una interfaz que tiene elementos de tipo que se han obtenido al realizar una combinación interna de dos secuencias. + Primera secuencia que se va a combinar. + Secuencia que se va a combinar con la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la primera secuencia. + Función para extraer la clave de combinación a partir de cada elemento de la segunda secuencia. + Función que va a crear un elemento de resultado a partir de dos elementos coincidentes. + + que va a aplicar un algoritmo hash y a comparar las claves. + Tipo de los elementos de la primera secuencia. + Tipo de los elementos de la segunda secuencia. + Tipo de las claves devueltas por las funciones del selector de claves. + Tipo de los elementos del resultado. + + o o o o es null. + + + Devuelve el último elemento de una secuencia. + El valor de la última posición de . + + del que se va a devolver el último elemento. + Tipo de los elementos de . + + es null. + La secuencia de origen está vacía. + + + Devuelve el último elemento de una secuencia que satisface una condición especificada. + El último elemento de que pasa la prueba especificada en . + + del que se va a devolver un elemento. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + Ningún elemento satisface la condición de .O bienLa secuencia de origen está vacía. + + + Devuelve el último elemento de una secuencia o un valor predeterminado si la secuencia no contiene elementos. + default () si está vacío; de lo contrario, el último elemento de . + + del que se va a devolver el último elemento. + Tipo de los elementos de . + + es null. + + + Devuelve el último elemento de una secuencia que satisface una condición o un valor predeterminado si no se encuentra dicho elemento. + default () si está vacío o si ningún elemento pasa la prueba de la función de predicado; de lo contrario, el último elemento de que pasa la prueba de la función de predicado. + + del que se va a devolver un elemento. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Devuelve un valor que representa el número total de elementos de una secuencia. + El número de elementos de . + + que contiene los elementos que se van a contar. + Tipo de los elementos de . + + es null. + Número de elementos supera el valor . + + + Devuelve un valor que representa el número de elementos de una secuencia que satisfacen una condición. + El número de elementos de que satisfacen la condición de la función de predicado. + + que contiene los elementos que se van a contar. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + El número de elementos que coinciden supera el valor . + + + Devuelve el valor máximo de una interfaz genérica. + El valor máximo de la secuencia. + Secuencia de valores cuyo valor máximo se va a determinar. + Tipo de los elementos de . + + es null. + + + Invoca una función de proyección en cada elemento de una interfaz genérica y devuelve el valor máximo resultante. + El valor máximo de la secuencia. + Secuencia de valores cuyo valor máximo se va a determinar. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + Tipo del valor devuelto por la función representada por . + + o es null. + + + Devuelve el valor mínimo de una interfaz genérica. + El valor mínimo de la secuencia. + Secuencia de valores cuyo valor mínimo se va a determinar. + Tipo de los elementos de . + + es null. + + + Invoca una función de proyección en cada elemento de una interfaz genérica y devuelve el valor mínimo resultante. + El valor mínimo de la secuencia. + Secuencia de valores cuyo valor mínimo se va a determinar. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + Tipo del valor devuelto por la función representada por . + + o es null. + + + Filtra los elementos de en función de un tipo especificado. + Colección que contiene los elementos de que son de tipo . + + cuyos elementos se van a filtrar. + El tipo según el cual se van a filtrar los elementos de la secuencia. + + es null. + + + Ordena de manera ascendente los elementos de una secuencia en función de una clave. + Una interfaz cuyos elementos se ordenan con arreglo a una clave. + Secuencia de valores que se va a ordenar. + Función para extraer una clave a partir de un elemento. + Tipo de los elementos de . + Tipo de la clave devuelto por la función representada por . + + o es null. + + + Ordena de manera ascendente los elementos de una secuencia utilizando un comparador especificado. + Una interfaz cuyos elementos se ordenan con arreglo a una clave. + Secuencia de valores que se va a ordenar. + Función para extraer una clave a partir de un elemento. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelto por la función representada por . + + o o es null. + + + Ordena de manera descendente los elementos de una secuencia en función de una clave. + Una interfaz cuyos elementos se ordenan de manera descendente con arreglo a una clave. + Secuencia de valores que se va a ordenar. + Función para extraer una clave a partir de un elemento. + Tipo de los elementos de . + Tipo de la clave devuelto por la función representada por . + + o es null. + + + Ordena de manera descendente los elementos de una secuencia utilizando un comparador especificado. + Una interfaz cuyos elementos se ordenan de manera descendente con arreglo a una clave. + Secuencia de valores que se va a ordenar. + Función para extraer una clave a partir de un elemento. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelto por la función representada por . + + o o es null. + + + Invierte el orden de los elementos de una secuencia. + + cuyos elementos se corresponden en orden inverso con los de la secuencia de entrada. + Secuencia de valores que se va a invertir. + Tipo de los elementos de . + + es null. + + + Proyecta cada elemento de una secuencia en un nuevo formulario. + + cuyos elementos son el resultado de invocar una función de proyección en cada elemento de . + Secuencia de valores que se va a proyectar. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + Tipo del valor devuelto por la función representada por . + + o es null. + + + Proyecta cada elemento de una secuencia en un nuevo formulario incorporando el índice del elemento. + + cuyos elementos son el resultado de invocar una función de proyección en cada elemento de . + Secuencia de valores que se va a proyectar. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + Tipo del valor devuelto por la función representada por . + + o es null. + + + Proyecta cada elemento de una secuencia en e invoca una función del selector de resultados en cada elemento.Los valores resultantes de cada secuencia intermedia se combinan en una única secuencia unidimensional y se devuelven. + + cuyos elementos son el resultado de invocar la función de proyección uno a varios en cada elemento de y de asignar a continuación cada uno de los elementos de la secuencia y sus elementos de correspondientes a un elemento de resultado. + Secuencia de valores que se va a proyectar. + Función de proyección que se va a aplicar a cada elemento de la secuencia de entrada. + Función de proyección que se va a aplicar a cada elemento de la secuencia intermedia. + Tipo de los elementos de . + El tipo de los elementos intermedios recopilados por la función representada por . + Tipo de los elementos de la secuencia resultante. + + o o es null. + + + Proyecta cada elemento de una secuencia en una interfaz y combina las secuencias resultantes en una secuencia. + + cuyos elementos son el resultado de invocar una función de proyección uno a varios en cada elemento de la secuencia de entrada. + Secuencia de valores que se va a proyectar. + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + Tipo de los elementos de la secuencia devuelta por la función representada por . + + o es null. + + + Proyecta cada elemento de una secuencia en una interfaz que incorpora el índice del elemento de origen que lo generó.Una función del selector de resultados se invoca en cada elemento de todas las secuencias intermedias y, a continuación, los valores resultantes se combinan en una única secuencia unidimensional y se devuelven. + + cuyos elementos son el resultado de invocar la función de proyección uno a varios en cada elemento de y de asignar a continuación cada uno de los elementos de la secuencia y sus elementos de correspondientes a un elemento de resultado. + Secuencia de valores que se va a proyectar. + Función de proyección que se va a aplicar a cada elemento de la secuencia de entrada; el segundo parámetro de esta función representa el índice del elemento de origen. + Función de proyección que se va a aplicar a cada elemento de la secuencia intermedia. + Tipo de los elementos de . + El tipo de los elementos intermedios recopilados por la función representada por . + Tipo de los elementos de la secuencia resultante. + + o o es null. + + + Proyecta cada elemento de una secuencia en una interfaz y combina las secuencias resultantes en una secuencia.El índice de cada elemento de origen se utiliza en el formulario proyectado de ese elemento. + + cuyos elementos son el resultado de invocar una función de proyección uno a varios en cada elemento de la secuencia de entrada. + Secuencia de valores que se va a proyectar. + Función de proyección que se va a aplicar a cada elemento; el segundo parámetro de esta función representa el índice del elemento de origen. + Tipo de los elementos de . + Tipo de los elementos de la secuencia devuelta por la función representada por . + + o es null. + + + Determina si dos secuencias son iguales utilizando el comparador de igualdad predeterminado para comparar los elementos. + true si las dos secuencias de origen tienen la misma longitud y sus elementos correspondientes son iguales; de lo contrario, false. + + cuyos elementos se van a comparar con los de . + + cuyos elementos se van a comparar con los de la primera secuencia. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Determina si dos secuencias son iguales utilizando una interfaz especificada para comparar los elementos. + true si las dos secuencias de origen tienen la misma longitud y sus elementos correspondientes son iguales; de lo contrario, false. + + cuyos elementos se van a comparar con los de . + + cuyos elementos se van a comparar con los de la primera secuencia. + + que se va a utilizar para comparar elementos. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Devuelve el único elemento de una secuencia y produce una excepción si no hay exactamente un elemento en la secuencia. + El único elemento de la secuencia de entrada. + + cuyo único elemento se va a devolver. + Tipo de los elementos de . + + es null. + + tiene más de un elemento. + + + Devuelve el único elemento de una secuencia que cumpla la condición especificada y produce una excepción si más de un elemento la cumple. + El único elemento de la secuencia de entrada que satisface la condición de . + + del que se va a devolver un único elemento. + Función que va a probar si un elemento satisface una condición. + Tipo de los elementos de . + + o es null. + Ningún elemento satisface la condición de .O bienVarios elementos satisfacen la condición de .O bienLa secuencia de origen está vacía. + + + Devuelve el único elemento de una secuencia o un valor predeterminado si la secuencia está vacía; este método produce una excepción si hay más de un elemento en la secuencia. + El único elemento de la secuencia de entrada o default() si la secuencia no contiene ningún elemento. + + cuyo único elemento se va a devolver. + Tipo de los elementos de . + + es null. + + tiene más de un elemento. + + + Devuelve el único elemento de una secuencia que cumpla la condición especificada, o bien, un valor predeterminado si ese elemento no existe; este método produce una excepción si varios elementos cumplen la condición. + El único elemento de la secuencia de entrada que satisface la condición de o default() si no se encuentra dicho elemento. + + del que se va a devolver un único elemento. + Función que va a probar si un elemento satisface una condición. + Tipo de los elementos de . + + o es null. + Varios elementos satisfacen la condición de . + + + Omite un número especificado de elementos en una secuencia y, a continuación, devuelve los elementos restantes. + + que contiene los elementos que hay después del índice especificado en la secuencia de entrada. + + del que se van a devolver los elementos. + Número de elementos que se van a omitir antes de devolver los elementos restantes. + Tipo de los elementos de . + + es null. + + + Omite los elementos de una secuencia en tanto que el valor de una condición especificada sea true y, a continuación, devuelve los elementos restantes. + + que contiene los elementos de comenzando por el primer elemento de la serie lineal que no pasa la prueba especificada . + + del que se van a devolver los elementos. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Omite los elementos de una secuencia en tanto que el valor de una condición especificada sea true y, a continuación, devuelve los elementos restantes.El índice del elemento se usa en la lógica de la función de predicado. + + que contiene los elementos de comenzando por el primer elemento de la serie lineal que no pasa la prueba especificada . + + del que se van a devolver los elementos. + Función que va a probar cada elemento para determinar si satisface una condición; el segundo parámetro de esta función representa el índice del elemento de origen. + Tipo de los elementos de . + + o es null. + + + Calcula la suma de una secuencia de valores . + La suma de los valores de la secuencia. + Secuencia de valores cuya suma se va a calcular. + + es null. + La suma es mayor que . + + + Calcula la suma de una secuencia de valores . + La suma de los valores de la secuencia. + Secuencia de valores cuya suma se va a calcular. + + es null. + + + Calcula la suma de una secuencia de valores . + La suma de los valores de la secuencia. + Secuencia de valores cuya suma se va a calcular. + + es null. + La suma es mayor que . + + + Calcula la suma de una secuencia de valores . + La suma de los valores de la secuencia. + Secuencia de valores cuya suma se va a calcular. + + es null. + La suma es mayor que . + + + Calcula la suma de una secuencia de valores que aceptan valores NULL. + La suma de los valores de la secuencia. + Secuencia de valores que aceptan valores NULL cuya suma se va a calcular. + + es null. + La suma es mayor que . + + + Calcula la suma de una secuencia de valores que aceptan valores NULL. + La suma de los valores de la secuencia. + Secuencia de valores que aceptan valores NULL cuya suma se va a calcular. + + es null. + + + Calcula la suma de una secuencia de valores que aceptan valores NULL. + La suma de los valores de la secuencia. + Una secuencia de valores que aceptan valores NULL cuya suma se va a calcular. + + es null. + La suma es mayor que . + + + Calcula la suma de una secuencia de valores que aceptan valores NULL. + La suma de los valores de la secuencia. + Secuencia de valores que aceptan valores NULL cuya suma se va a calcular. + + es null. + La suma es mayor que . + + + Calcula la suma de una secuencia de valores que aceptan valores NULL. + La suma de los valores de la secuencia. + Secuencia de valores que aceptan valores NULL cuya suma se va a calcular. + + es null. + + + Calcula la suma de una secuencia de valores . + La suma de los valores de la secuencia. + Secuencia de valores cuya suma se va a calcular. + + es null. + + + Calcula la suma de la secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + La suma es mayor que . + + + Calcula la suma de la secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula la suma de la secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + La suma es mayor que . + + + Calcula la suma de la secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + La suma es mayor que . + + + Calcula la suma de la secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + La suma es mayor que . + + + Calcula la suma de la secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula la suma de la secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + La suma es mayor que . + + + Calcula la suma de la secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + La suma es mayor que . + + + Calcula la suma de la secuencia de valores que aceptan valores NULL que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Calcula la suma de la secuencia de valores que se obtiene al invocar una función de proyección en cada elemento de la secuencia de entrada. + La suma de los valores proyectados. + Secuencia de valores de tipo . + Función de proyección que se va a aplicar a cada elemento. + Tipo de los elementos de . + + o es null. + + + Devuelve un número especificado de elementos contiguos desde el principio de una secuencia. + + que contiene el número especificado de elementos desde el comienzo de . + Secuencia cuyos elementos se van a devolver. + Número de elementos que se van a devolver. + Tipo de los elementos de . + + es null. + + + Devuelve los elementos de una secuencia en tanto que el valor de una condición especificada sea true. + + que contiene los elementos de la secuencia de entrada que se encuentran antes del elemento en el que la prueba especificada no se realiza correctamente. + Secuencia cuyos elementos se van a devolver. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Devuelve los elementos de una secuencia en tanto que el valor de una condición especificada sea true.El índice del elemento se usa en la lógica de la función de predicado. + + que contiene los elementos de la secuencia de entrada que se encuentran antes del elemento en el que la prueba especificada no se realiza correctamente. + Secuencia cuyos elementos se van a devolver. + Función que va a probar cada elemento para determinar si satisface una condición; el segundo parámetro de la función representa el índice del elemento de la secuencia de origen. + Tipo de los elementos de . + + o es null. + + + Realiza una clasificación posterior de los elementos de una secuencia en orden ascendentes con arreglo a una clave. + Una interfaz cuyos elementos se ordenan con arreglo a una clave. + + que contiene los elementos que se van a ordenar. + Función para extraer una clave a partir de cada elemento. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + + o es null. + + + Realiza una clasificación posterior de los elementos de una secuencia en orden ascendente utilizando un comparador especificado. + Una interfaz cuyos elementos se ordenan con arreglo a una clave. + + que contiene los elementos que se van a ordenar. + Función para extraer una clave a partir de cada elemento. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + + o o es null. + + + Realiza una clasificación posterior de los elementos de una secuencia en orden descendente con arreglo a una clave. + Una interfaz cuyos elementos se ordenan de manera descendente con arreglo a una clave. + + que contiene los elementos que se van a ordenar. + Función para extraer una clave a partir de cada elemento. + Tipo de los elementos de . + Tipo de la clave devuelta por la función representada en . + + o es null. + + + Realiza una clasificación posterior de los elementos de una secuencia en orden descendente utilizando un comparador especificado. + Colección cuyos elementos están ordenados de manera descendente de acuerdo con una clave. + + que contiene los elementos que se van a ordenar. + Función para extraer una clave a partir de cada elemento. + + para comparar claves. + Tipo de los elementos de . + Tipo de la clave que la función devuelve. + + o o es null. + + + Proporciona la unión de conjuntos de dos secuencias utilizando el comparador de igualdad predeterminado. + + que contiene los elementos de las dos secuencias de entrada, excepto los duplicados. + Secuencia cuyos elementos forman el primer conjunto de la operación de unión. + Secuencia cuyos elementos forman el segundo conjunto de la operación de unión. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Proporciona la unión de conjuntos de dos secuencias a través de un objeto especificado. + + que contiene los elementos de las dos secuencias de entrada, excepto los duplicados. + Secuencia cuyos elementos forman el primer conjunto de la operación de unión. + Secuencia cuyos elementos forman el segundo conjunto de la operación de unión. + + para comparar valores. + Tipo de los elementos de las secuencias de entrada. + + o es null. + + + Filtra una secuencia de valores en función de un predicado. + + que contiene los elementos de la secuencia de entrada que satisfacen la condición especificada en . + + que se va a filtrar. + Función para probar cada elemento de una condición. + Tipo de los elementos de . + + o es null. + + + Filtra una secuencia de valores en función de un predicado.El índice de cada elemento se usa en la lógica de la función de predicado. + + que contiene los elementos de la secuencia de entrada que satisfacen la condición especificada en . + + que se va a filtrar. + Función que va a probar cada elemento para determinar si satisface una condición; el segundo parámetro de la función representa el índice del elemento de la secuencia de origen. + Tipo de los elementos de . + + o es null. + + + Combina dos secuencias utilizando la función de predicado especificada. + + que contiene elementos combinados de las dos secuencias de entrada. + Primera secuencia que se va a combinar. + Segunda secuencia que se va a combinar. + Función que especifica cómo combinar los elementos de las dos secuencias. + Tipo de los elementos de la primera secuencia de entrada. + Tipo de los elementos de la segunda secuencia de entrada. + Tipo de los elementos de la secuencia de resultados. + El valor de o de es null. + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/fr/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/fr/System.Linq.Queryable.xml new file mode 100644 index 0000000..6dc0bf7 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/fr/System.Linq.Queryable.xml @@ -0,0 +1,1384 @@ + + + + System.Linq.Queryable + + + + Représente une arborescence de l'expression et fournit les fonctionnalités permettant d'exécuter l'arborescence de l'expression après l'avoir réécrite. + + + Initialise une nouvelle instance de la classe . + + + Représente une arborescence de l'expression et fournit les fonctionnalités permettant d'exécuter l'arborescence de l'expression après l'avoir réécrite. + Type de données de la valeur qui résulte de l'exécution de l'arborescence de l'expression. + + + Initialise une nouvelle instance de la classe . + Arborescence de l'expression à associer à la nouvelle instance. + + + Représente une sous la forme d'une source de données . + + + Initialise une nouvelle instance de la classe . + + + Représente une collection sous la forme d'une source de données . + Type des données contenues dans la collection. + + + Initialise une nouvelle instance de la classe et l'associe à une collection . + Collection à associer à la nouvelle instance. + + + Initialise une nouvelle instance de la classe et associe l'instance à une arborescence de l'expression. + Arborescence de l'expression à associer à la nouvelle instance. + + + Retourne un énumérateur qui peut itérer au sein de la collection associée, ou, si sa valeur est null, la collection qui résulte de la réécriture de l'arborescence de l'expression associée en tant que requête sur une source de données et de son exécution. + Énumérateur pouvant itérer au sein de la source de données associée. + + + Retourne un énumérateur qui peut itérer au sein de la collection associée, ou, si sa valeur est null, la collection qui résulte de la réécriture de l'arborescence de l'expression associée en tant que requête sur une source de données et de son exécution. + Énumérateur pouvant itérer au sein de la source de données associée. + + + Obtient le type de données dans la collection que représente cette instance. + Type de données dans la collection que représente cette instance. + + + Obtient l'arborescence de l'expression associée à cette instance ou qui la représente. + Arborescence de l'expression associée à cette instance ou qui la représente. + + + Obtient le fournisseur de requêtes associé à cette instance. + Fournisseur de requêtes associé à cette instance. + + + Construit un nouvel objet et l'associe à une arborescence de l'expression spécifiée qui représente une collection de données . + Objet EnumerableQuery associé à . + Arborescence de l'expression à exécuter. + Type de données dans la collection que représente . + + + Construit un nouvel objet et l'associe à une arborescence de l'expression spécifiée qui représente une collection de données . + Objet associé à . + Arborescence de l'expression qui représente une collection de données . + + + Exécute une expression après l'avoir réécrit pour appeler des méthodes à la place des méthodes sur des sources de données énumérables qui ne peuvent pas être interrogées par les méthodes . + Valeur qui résulte de l'exécution de . + Arborescence de l'expression à exécuter. + Type de données dans la collection que représente . + + + Exécute une expression après l'avoir réécrit pour appeler des méthodes à la place des méthodes sur des sources de données énumérables qui ne peuvent pas être interrogées par les méthodes . + Valeur qui résulte de l'exécution de . + Arborescence de l'expression à exécuter. + + + Retourne une représentation textuelle de la collection énumérable ou, si la valeur est null, de l'arborescence de l'expression associée à cette instance. + Représentation textuelle de la collection énumérable ou, si la valeur est null, de l'arborescence de l'expression associée à cette instance. + + + Fournit un jeu de méthodes statiques staticShared en Visual Basic) pour interroger des structures de données qui implémentent . + + + Applique une fonction d'accumulation sur une séquence. + Valeur d'accumulation finale. + Séquence à regrouper. + Fonction d'accumulation à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + ne contient aucun élément. + + + Applique une fonction d'accumulation sur une séquence.La valeur initiale spécifiée est utilisée comme valeur d'accumulation initiale. + Valeur d'accumulation finale. + Séquence à regrouper. + Valeur d'accumulation initiale. + Fonction d'accumulation à appeler sur chaque élément. + Type des éléments de . + Type de la valeur d'accumulation. + + ou est null. + + + Applique une fonction d'accumulation sur une séquence.La valeur initiale spécifiée est utilisée comme valeur d'accumulation initiale et la fonction spécifiée permet de sélectionner la valeur de résultat. + Valeur d'accumulation finale transformée. + Séquence à regrouper. + Valeur d'accumulation initiale. + Fonction d'accumulation à appeler sur chaque élément. + Fonction permettant de transformer la valeur d'accumulation finale en valeur de résultat. + Type des éléments de . + Type de la valeur d'accumulation. + Type de la valeur résultante. + + ou ou est null. + + + Détermine si tous les éléments d'une séquence satisfont à une condition. + true si tous les éléments de la séquence source réussissent le test dans le prédicat spécifié ou si la séquence est vide ; sinon, false. + Séquence dont les éléments doivent être testés par rapport à une condition. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Détermine si une séquence contient des éléments. + true si la séquence source contient des éléments ; sinon, false. + Séquence à vérifier pour y détecter l'absence de données. + Type des éléments de . + + a la valeur null. + + + Détermine si des éléments d'une séquence satisfont à une condition. + true si des éléments de la séquence source réussissent le test dans le prédicat spécifié ; sinon, false. + Séquence dont les éléments doivent être testés par rapport à une condition. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Convertit un générique en générique. + + qui représente la séquence d'entrée. + Séquence à convertir. + Type des éléments de . + + a la valeur null. + + + Convertit un en . + + qui représente la séquence d'entrée. + Séquence à convertir. + + n'implémente pas pour certains . + + a la valeur null. + + + Calcule la moyenne d'une séquence de valeurs . + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + + a la valeur null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs . + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + + a la valeur null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs . + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + + a la valeur null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs . + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + + a la valeur null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs nullables. + Moyenne de la séquence de valeurs ou null si la séquence source est vide ou ne contient que des valeurs null. + Séquence de valeurs nullables dont la moyenne doit être calculée. + + a la valeur null. + + + Calcule la moyenne d'une séquence de valeurs nullables. + Moyenne de la séquence de valeurs ou null si la séquence source est vide ou ne contient que des valeurs null. + Séquence de valeurs nullables dont la moyenne doit être calculée. + + a la valeur null. + + + Calcule la moyenne d'une séquence de valeurs nullables. + Moyenne de la séquence de valeurs ou null si la séquence source est vide ou ne contient que des valeurs null. + Séquence de valeurs nullables dont la moyenne doit être calculée. + + a la valeur null. + + + Calcule la moyenne d'une séquence de valeurs nullables. + Moyenne de la séquence de valeurs ou null si la séquence source est vide ou ne contient que des valeurs null. + Séquence de valeurs nullables dont la moyenne doit être calculée. + + a la valeur null. + + + Calcule la moyenne d'une séquence de valeurs nullables. + Moyenne de la séquence de valeurs ou null si la séquence source est vide ou ne contient que des valeurs null. + Séquence de valeurs nullables dont la moyenne doit être calculée. + + a la valeur null. + + + Calcule la moyenne d'une séquence de valeurs . + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + + a la valeur null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs. + Séquence de valeurs utilisées pour calculer une moyenne. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + ne contient aucun élément. + + + Calcule la moyenne d'une séquence de valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs ou null si la séquence est vide ou ne contient que des valeurs null. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la moyenne d'une séquence de valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs ou null si la séquence est vide ou ne contient que des valeurs null. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la moyenne d'une séquence de valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs ou null si la séquence est vide ou ne contient que des valeurs null. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la moyenne d'une séquence de valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs ou null si la séquence est vide ou ne contient que des valeurs null. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la moyenne d'une séquence de valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs ou null si la séquence est vide ou ne contient que des valeurs null. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la moyenne d'une séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Moyenne de la séquence de valeurs. + Séquence de valeurs dont la moyenne doit être calculée. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + ne contient aucun élément. + + + Convertit les éléments d'un vers le type spécifié. + + qui contient chaque élément de la séquence source converti dans le type spécifié. + + qui contient les éléments à convertir. + Type vers lequel convertir les éléments de . + + a la valeur null. + Impossible de caster un élément de la séquence en type . + + + Concatène deux séquences. + + qui contient les éléments concaténés des deux séquences d'entrée. + Première séquence à concaténer. + Séquence à concaténer à la première séquence. + Type des éléments des séquences d'entrée. + + ou est null. + + + Détermine si une séquence contient un élément spécifié à l'aide du comparateur d'égalité par défaut. + true si la séquence d'entrée contient un élément avec la valeur spécifiée ; sinon, false. + + dans lequel trouver . + L'objet à localiser dans la séquence. + Type des éléments de . + + a la valeur null. + + + Détermine si une séquence contient un élément spécifié à l'aide du indiqué. + true si la séquence d'entrée contient un élément avec la valeur spécifiée ; sinon, false. + + dans lequel trouver . + L'objet à localiser dans la séquence. + + pour comparer les valeurs. + Type des éléments de . + + a la valeur null. + + + Retourne le nombre total d'éléments dans une séquence. + Nombre total d'éléments dans la séquence d'entrée. + + qui contient les éléments à compter. + Type des éléments de . + + a la valeur null. + Le nombre d'éléments dans est supérieur à . + + + Retourne le nombre d'éléments dans la séquence spécifiée qui satisfait à une condition. + Nombre d'éléments de la séquence qui satisfont à la condition dans la fonction de prédicat. + + qui contient les éléments à compter. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + Le nombre d'éléments dans est supérieur à . + + + Retourne les éléments de la séquence spécifiée ou la valeur par défaut du paramètre de type dans une collection de singletons si la séquence est vide. + + qui contient default() si est vide ; sinon, . + + pour lequel retourner une valeur par défaut si vide. + Type des éléments de . + + a la valeur null. + + + Retourne les éléments de la séquence spécifiée ou la valeur indiquée dans une collection de singletons si la séquence est vide. + + qui contient si est vide ; sinon, . + + pour lequel retourner la valeur spécifiée si vide. + Valeur à retourner si la séquence est vide. + Type des éléments de . + + a la valeur null. + + + Retourne des éléments distincts d'une séquence et utilise le comparateur d'égalité par défaut pour comparer les valeurs. + + qui contient des éléments distincts de . + + dans lequel supprimer les doublons. + Type des éléments de . + + a la valeur null. + + + Retourne des éléments distincts d'une séquence et utilise le spécifié pour comparer les valeurs. + + qui contient des éléments distincts de . + + dans lequel supprimer les doublons. + + pour comparer les valeurs. + Type des éléments de . + + ou est null. + + + Retourne l'élément à une position d'index spécifiée dans une séquence. + L'élément à la position spécifiée dans . + + à partir duquel retourner un élément. + Index de base zéro de l'élément à récupérer. + Type des éléments de . + + a la valeur null. + + est inférieur à zéro. + + + Retourne l'élément situé à un index spécifié dans une séquence ou une valeur par défaut si l'index est hors limites. + default() si est hors des limites de  ; sinon, l'élément à la position spécifiée dans . + + à partir duquel retourner un élément. + Index de base zéro de l'élément à récupérer. + Type des éléments de . + + a la valeur null. + + + Produit la différence entre deux séquences à l'aide du comparateur d'égalité par défaut pour comparer les valeurs. + + qui contient la différence des deux séquences. + Un dont les éléments ne se trouvent pas également dans sera retourné. + Un dont les éléments apparaissent également dans la première séquence ne figurera pas dans la séquence retournée. + Type des éléments des séquences d'entrée. + + ou est null. + + + Produit la différence entre deux séquences à l'aide du spécifié pour comparer les valeurs. + + qui contient la différence des deux séquences. + Un dont les éléments ne se trouvent pas également dans sera retourné. + Un dont les éléments apparaissent également dans la première séquence ne figurera pas dans la séquence retournée. + + pour comparer les valeurs. + Type des éléments des séquences d'entrée. + + ou est null. + + + Retourne le premier élément d'une séquence. + Premier élément de . + + duquel retourner le premier élément. + Type des éléments de . + + a la valeur null. + La séquence source est vide. + + + Retourne le premier élément d'une séquence qui satisfait à la condition spécifiée. + Premier élément de qui réussit le test dans . + + à partir duquel retourner un élément. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + Aucun élément ne satisfait à la condition dans .ouLa séquence source est vide. + + + Retourne le premier élément d'une séquence ou une valeur par défaut si la séquence ne contient aucun élément. + default () si est vide ; sinon, le premier élément de . + + duquel retourner le premier élément. + Type des éléments de . + + a la valeur null. + + + Retourne le premier élément d'une séquence qui satisfait à une condition spécifiée ou une valeur par défaut si aucun élément ne correspond. + default () si est vide ou si aucun élément ne réussit le test spécifié par  ; sinon, le premier élément de qui réussit le test spécifié par . + + à partir duquel retourner un élément. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée. + IQueryable<IGrouping<TKey, TSource>> en C# ou IQueryable(Of IGrouping(Of TKey, TSource)) dans Visual Basic où chaque objet contient une séquence d'objets et une clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + + ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et compare les clés à l'aide du comparateur indiqué. + IQueryable<IGrouping<TKey, TSource>> en C# ou IQueryable(Of IGrouping(Of TKey, TSource)) dans Visual Basic où chaque contient une séquence d'objets et une clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + + ou ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et projette les éléments de chaque groupe à l'aide de la fonction indiquée. + IQueryable<IGrouping<TKey, TElement>> en C# ou IQueryable(Of IGrouping(Of TKey, TElement)) dans Visual Basic où chaque contient une séquence d'objets de type et une clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Fonction permettant de mapper chaque élément source à un élément de . + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + Type des éléments de chaque . + + ou ou est null. + + + Groupe les éléments d'une séquence et projette les éléments pour chaque groupe en utilisant une fonction spécifiée.Les valeurs de clés sont comparées à l'aide d'un comparateur spécifié. + IQueryable<IGrouping<TKey, TElement>> en C# ou IQueryable(Of IGrouping(Of TKey, TElement)) dans Visual Basic où chaque contient une séquence d'objets de type et une clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Fonction permettant de mapper chaque élément source à un élément de . + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + Type des éléments de chaque . + + ou ou ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante.Les éléments de chaque groupe sont projetés à l'aide d'une fonction spécifique. + T:System.Linq.IQueryable`1 qui dispose d'un argument de type et où chaque élément représente une projection sur un groupe et sa clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Fonction permettant de mapper chaque élément source à un élément de . + Fonction permettant de créer une valeur de résultat à partir de chaque groupe. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + Type des éléments de chaque . + Type de la valeur de résultat retournée par . + + ou ou ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante.Les clés sont comparées à l'aide du comparateur spécifié et les éléments de chaque groupe sont projetés à l'aide d'une fonction spécifique. + T:System.Linq.IQueryable`1 qui dispose d'un argument de type et où chaque élément représente une projection sur un groupe et sa clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Fonction permettant de mapper chaque élément source à un élément de . + Fonction permettant de créer une valeur de résultat à partir de chaque groupe. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + Type des éléments de chaque . + Type de la valeur de résultat retournée par . + + ou ou ou ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante. + T:System.Linq.IQueryable`1 qui dispose d'un argument de type et où chaque élément représente une projection sur un groupe et sa clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Fonction permettant de créer une valeur de résultat à partir de chaque groupe. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + Type de la valeur de résultat retournée par . + + ou ou est null. + + + Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante.Les clés sont comparées à l'aide d'un comparateur spécifié. + T:System.Linq.IQueryable`1 qui dispose d'un argument de type et où chaque élément représente une projection sur un groupe et sa clé. + + dont les éléments doivent être regroupés. + Fonction permettant d'extraire la clé de chaque élément. + Fonction permettant de créer une valeur de résultat à partir de chaque groupe. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée dans . + Type de la valeur de résultat retournée par . + + ou ou ou est null. + + + Met en corrélation les éléments de deux séquences en fonction de l'égalité des clés et regroupe les résultats.Le comparateur d'égalité par défaut est utilisé pour comparer les clés. + + qui contient des éléments de type obtenus en exécutant une jointure groupée sur deux séquences. + Première séquence à joindre. + Séquence à joindre à la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la deuxième séquence. + Fonction permettant de créer un élément de résultat à partir d'un élément de la première séquence, ainsi qu'une collection d'éléments correspondants à partir de la deuxième séquence. + Type des éléments de la première séquence. + Type des éléments de la deuxième séquence. + Type des clés retournées par les fonctions de sélecteur de clé. + Type des éléments de résultat. + + ou ou ou ou est null. + + + Met en corrélation les éléments de deux séquences en fonction de l'égalité des clés et regroupe les résultats.Un spécifié est utilisé pour comparer les clés. + + qui contient des éléments de type obtenus en exécutant une jointure groupée sur deux séquences. + Première séquence à joindre. + Séquence à joindre à la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la deuxième séquence. + Fonction permettant de créer un élément de résultat à partir d'un élément de la première séquence, ainsi qu'une collection d'éléments correspondants à partir de la deuxième séquence. + Comparateur pour hacher et comparer des clés. + Type des éléments de la première séquence. + Type des éléments de la deuxième séquence. + Type des clés retournées par les fonctions de sélecteur de clé. + Type des éléments de résultat. + + ou ou ou ou est null. + + + Produit l'intersection de deux séquences à l'aide du comparateur d'égalité par défaut pour comparer les valeurs. + Séquence qui contient l'intersection définie des deux séquences. + Séquence dont les éléments distincts qui apparaissent également dans sont retournés. + Séquence dont les éléments distincts qui apparaissent également dans la première séquence sont retournés. + Type des éléments des séquences d'entrée. + + ou est null. + + + Produit l'intersection entre deux séquences à l'aide du spécifié pour comparer les valeurs. + + qui contient l'intersection définie des deux séquences. + Un dont les éléments distincts qui apparaissent également dans sont retournés. + Un dont les éléments distincts qui apparaissent également dans la première séquence sont retournés. + + pour comparer les valeurs. + Type des éléments des séquences d'entrée. + + ou est null. + + + Met en corrélation les éléments de deux séquences en fonction des clés qui correspondent.Le comparateur d'égalité par défaut est utilisé pour comparer les clés. + + qui contient des éléments de type obtenus à la suite d'une jointure interne de deux séquences. + Première séquence à joindre. + Séquence à joindre à la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la deuxième séquence. + Fonction permettant de créer un élément de résultat à partir de deux éléments correspondants. + Type des éléments de la première séquence. + Type des éléments de la deuxième séquence. + Type des clés retournées par les fonctions de sélecteur de clé. + Type des éléments de résultat. + + ou ou ou ou est null. + + + Met en corrélation les éléments de deux séquences en fonction des clés qui correspondent.Un spécifié est utilisé pour comparer les clés. + + qui contient des éléments de type obtenus à la suite d'une jointure interne de deux séquences. + Première séquence à joindre. + Séquence à joindre à la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la première séquence. + Fonction permettant d'extraire la clé de jointure de chaque élément de la deuxième séquence. + Fonction permettant de créer un élément de résultat à partir de deux éléments correspondants. + + pour hacher et comparer les clés. + Type des éléments de la première séquence. + Type des éléments de la deuxième séquence. + Type des clés retournées par les fonctions de sélecteur de clé. + Type des éléments de résultat. + + ou ou ou ou est null. + + + Retourne le dernier élément d'une séquence. + Valeur située à la dernière position de . + + duquel retourner le dernier élément. + Type des éléments de . + + a la valeur null. + La séquence source est vide. + + + Retourne le dernier élément d'une séquence à satisfaire à la condition spécifiée. + Le dernier élément de qui réussit le test spécifié par . + + à partir duquel retourner un élément. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + Aucun élément ne satisfait à la condition dans .ouLa séquence source est vide. + + + Retourne le dernier élément d'une séquence ou une valeur par défaut si la séquence ne contient aucun élément. + default () si est vide ; sinon, le dernier élément de . + + duquel retourner le dernier élément. + Type des éléments de . + + a la valeur null. + + + Retourne le dernier élément d'une séquence à satisfaire à une condition ou une valeur par défaut si aucun élément correspondant n'est trouvé. + default () si est vide ou si aucun élément ne réussit le test de la fonction de prédicat ; sinon, le dernier élément de qui réussit le test de cette fonction. + + à partir duquel retourner un élément. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Retourne un qui représente le nombre total d'éléments dans une séquence. + Nombre d'éléments de . + + qui contient les éléments à compter. + Type des éléments de . + + a la valeur null. + Le nombre d'éléments est supérieur à . + + + Retourne un qui représente le nombre d'éléments dans une séquence qui satisfont à une condition. + Nombre d'éléments de qui satisfont à la condition définie dans la fonction de prédicat. + + qui contient les éléments à compter. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + Le nombre d'éléments correspondants est supérieur à . + + + Retourne la valeur maximale dans un générique. + Valeur maximale dans la séquence. + Séquence de valeurs dans laquelle rechercher la valeur maximale. + Type des éléments de . + + a la valeur null. + + + Appelle une fonction de projection sur chaque élément d'un générique et retourne la valeur résultante maximale. + Valeur maximale dans la séquence. + Séquence de valeurs dans laquelle rechercher la valeur maximale. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + Type de la valeur retournée par la fonction représentée par . + + ou est null. + + + Retourne la valeur minimale d'un générique. + Valeur minimale dans la séquence. + Séquence de valeurs dans laquelle rechercher la valeur minimale. + Type des éléments de . + + a la valeur null. + + + Appelle une fonction de projection sur chaque élément d'un générique et retourne la valeur résultante minimale. + Valeur minimale dans la séquence. + Séquence de valeurs dans laquelle rechercher la valeur minimale. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + Type de la valeur retournée par la fonction représentée par . + + ou est null. + + + Filtre les éléments d'un en fonction du type spécifié. + Collection qui contient les éléments de qui ont le type . + + dont les éléments doivent être filtrés. + Type en fonction duquel filtrer les éléments de la séquence. + + a la valeur null. + + + Trie les éléments d'une séquence dans l'ordre croissant selon une clé. + + dont les éléments sont triés selon une clé. + Séquence de valeurs à classer. + Fonction permettant d'extraire une clé d'un élément. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou est null. + + + Trie les éléments d'une séquence dans l'ordre croissant à l'aide d'un comparateur spécifié. + + dont les éléments sont triés selon une clé. + Séquence de valeurs à classer. + Fonction permettant d'extraire une clé d'un élément. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou ou est null. + + + Trie les éléments d'une séquence dans l'ordre décroissant selon une clé. + + dont les éléments sont triés dans l'ordre décroissant selon une clé. + Séquence de valeurs à classer. + Fonction permettant d'extraire une clé d'un élément. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou est null. + + + Trie les éléments d'une séquence dans l'ordre décroissant à l'aide d'un comparateur spécifié. + + dont les éléments sont triés dans l'ordre décroissant selon une clé. + Séquence de valeurs à classer. + Fonction permettant d'extraire une clé d'un élément. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou ou est null. + + + Inverse l'ordre des éléments dans une séquence. + + dont les éléments correspondent à ceux de la séquence d'entrée dans l'ordre inverse. + Séquence de valeurs à inverser. + Type des éléments de . + + a la valeur null. + + + Projette chaque élément d'une séquence dans un nouveau formulaire. + + dont les éléments sont le résultat de l'appel d'une fonction de projection sur chaque élément de . + Séquence de valeurs à projeter. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + Type de la valeur retournée par la fonction représentée par . + + ou est null. + + + Projette chaque élément d'une séquence dans un nouveau formulaire en incorporant l'index de l'élément. + + dont les éléments sont le résultat de l'appel d'une fonction de projection sur chaque élément de . + Séquence de valeurs à projeter. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + Type de la valeur retournée par la fonction représentée par . + + ou est null. + + + Projette chaque élément d'une séquence sur un et appelle une fonction du sélecteur de résultat sur chaque élément obtenu.Les valeurs résultantes de chaque séquence intermédiaire sont combinées en une séquence unique, unidimensionnelle et retournées. + + dont les éléments sont le résultat de l'appel de la fonction de projection un-à-plusieurs sur chaque élément de puis du mappage de chacun de ces éléments de séquence et de leur élément correspondant en un élément de résultat. + Séquence de valeurs à projeter. + Fonction de projection à appliquer à chaque élément de la séquence d'entrée. + Fonction de projection à appliquer à chaque élément de chaque séquence intermédiaire. + Type des éléments de . + Type des éléments intermédiaires rassemblé par la fonction représentée par . + Type des éléments de la séquence résultante. + + ou ou est null. + + + Projette chaque élément d'une séquence sur un et combine les séquences résultantes en une séquence. + + dont les éléments sont le résultat de l'appel d'une fonction de projection d'un-à-plusieurs sur chaque élément de la séquence d'entrée. + Séquence de valeurs à projeter. + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + Type des éléments de la séquence retournée par la fonction représentée par . + + ou est null. + + + Projette chaque élément d'une séquence en un qui incorpore l'index de l'élément source qui l'a produit.Une fonction de sélecteur du résultat est appelée sur chaque élément de chaque séquence intermédiaire, et les valeurs résultantes sont combinées en une séquence unique, unidimensionnelle et retournées. + + dont les éléments sont le résultat de l'appel de la fonction de projection un-à-plusieurs sur chaque élément de puis du mappage de chacun de ces éléments de séquence et de leur élément correspondant en un élément de résultat. + Séquence de valeurs à projeter. + Fonction de projection à appliquer à chaque élément de la séquence d'entrée ; le deuxième paramètre de cette fonction représente l'index de l'élément source. + Fonction de projection à appliquer à chaque élément de chaque séquence intermédiaire. + Type des éléments de . + Type des éléments intermédiaires rassemblé par la fonction représentée par . + Type des éléments de la séquence résultante. + + ou ou est null. + + + Projette chaque élément d'une séquence sur un et combine les séquences résultantes en une séquence.L'index de chaque élément source est utilisé dans le formulaire projeté de l'élément. + + dont les éléments sont le résultat de l'appel d'une fonction de projection d'un-à-plusieurs sur chaque élément de la séquence d'entrée. + Séquence de valeurs à projeter. + Fonction de projection à appliquer à chaque élément ; le deuxième paramètre de cette fonction représente l'index de l'élément source. + Type des éléments de . + Type des éléments de la séquence retournée par la fonction représentée par . + + ou est null. + + + Détermine si deux séquences sont égales à l'aide du comparateur d'égalité par défaut pour comparer des éléments. + true si les deux séquences sources sont de longueur égale et que leurs éléments correspondants sont égaux ; sinon, false. + + dont les éléments sont à comparer à ceux de . + + dont les éléments sont à comparer à ceux de la première séquence. + Type des éléments des séquences d'entrée. + + ou est null. + + + Détermine si deux séquences sont égales à l'aide d'un spécifié pour comparer des éléments. + true si les deux séquences sources sont de longueur égale et que leurs éléments correspondants sont égaux ; sinon, false. + + dont les éléments sont à comparer à ceux de . + + dont les éléments sont à comparer à ceux de la première séquence. + + à utiliser pour comparer les éléments. + Type des éléments des séquences d'entrée. + + ou est null. + + + Retourne l'élément unique d'une séquence ou lève une exception si cette séquence ne contient pas un seul élément. + Seul élément de la séquence d'entrée. + + duquel retourner le seul élément. + Type des éléments de . + + a la valeur null. + + a plusieurs éléments. + + + Retourne le seul élément d'une séquence qui satisfait à une condition spécifique ou lève une exception si cette séquence contient plusieurs éléments respectant cette condition. + L'élément unique de la séquence d'entrée qui satisfait à la condition dans . + + duquel retourner un seul élément. + Fonction permettant de tester un élément pour une condition. + Type des éléments de . + + ou est null. + Aucun élément ne satisfait à la condition dans .ouPlusieurs éléments satisfont à la condition dans .ouLa séquence source est vide. + + + Retourne l'élément unique d'une séquence ou une valeur par défaut. Cette méthode lève une exception si cette séquence contient plusieurs éléments. + L'élément unique de la séquence d'entrée ou default () si la séquence ne contient aucun élément. + + duquel retourner le seul élément. + Type des éléments de . + + a la valeur null. + + a plusieurs éléments. + + + Retourne l'élément unique d'une séquence ou une valeur par défaut si cette séquence ne contient pas d'élément respectant cette condition. Cette méthode lève une exception si cette séquence contient plusieurs éléments satisfaisant à cette condition. + Seul élément de la séquence d'entrée qui satisfait à la condition dans ou default() si cet élément n'est pas trouvé. + + duquel retourner un seul élément. + Fonction permettant de tester un élément pour une condition. + Type des éléments de . + + ou est null. + Plusieurs éléments satisfont à la condition dans . + + + Ignore un nombre spécifié d'éléments dans une séquence puis retourne les éléments restants. + + qui contient les éléments se trouvant après l'index spécifié dans la séquence d'entrée. + + à partir duquel retourner les éléments. + Nombre d'éléments à ignorer avant de retourner les éléments restants. + Type des éléments de . + + a la valeur null. + + + Ignore des éléments dans une séquence tant que la condition spécifiée a la valeur true, puis retourne les éléments restants. + + qui contient des éléments de , en commençant par le premier élément de la série linéaire qui ne réussit pas le test spécifié par . + + à partir duquel retourner les éléments. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Ignore des éléments dans une séquence tant que la condition spécifiée a la valeur true, puis retourne les éléments restants.L'index de l'élément est utilisé dans la logique de la fonction de prédicat. + + qui contient des éléments de , en commençant par le premier élément de la série linéaire qui ne réussit pas le test spécifié par . + + à partir duquel retourner les éléments. + Fonction permettant de tester chaque élément source par rapport à une condition ; le deuxième paramètre de cette fonction représente l'index de l'élément source. + Type des éléments de . + + ou est null. + + + Calcule la somme d'une séquence de valeurs . + Somme des valeurs de la séquence. + Séquence de valeurs dont la somme doit être calculée. + + a la valeur null. + La somme est supérieure à . + + + Calcule la somme d'une séquence de valeurs . + Somme des valeurs de la séquence. + Séquence de valeurs dont la somme doit être calculée. + + a la valeur null. + + + Calcule la somme d'une séquence de valeurs . + Somme des valeurs de la séquence. + Séquence de valeurs dont la somme doit être calculée. + + a la valeur null. + La somme est supérieure à . + + + Calcule la somme d'une séquence de valeurs . + Somme des valeurs de la séquence. + Séquence de valeurs dont la somme doit être calculée. + + a la valeur null. + La somme est supérieure à . + + + Calcule la somme d'une séquence de valeurs nullables. + Somme des valeurs de la séquence. + Séquence de valeurs nullables dont la somme doit être calculée. + + a la valeur null. + La somme est supérieure à . + + + Calcule la somme d'une séquence de valeurs nullables. + Somme des valeurs de la séquence. + Séquence de valeurs nullables dont la somme doit être calculée. + + a la valeur null. + + + Calcule la somme d'une séquence de valeurs nullables. + Somme des valeurs de la séquence. + Séquence de valeurs nullables dont la somme doit être calculée. + + a la valeur null. + La somme est supérieure à . + + + Calcule la somme d'une séquence de valeurs nullables. + Somme des valeurs de la séquence. + Séquence de valeurs nullables dont la somme doit être calculée. + + a la valeur null. + La somme est supérieure à . + + + Calcule la somme d'une séquence de valeurs nullables. + Somme des valeurs de la séquence. + Séquence de valeurs nullables dont la somme doit être calculée. + + a la valeur null. + + + Calcule la somme d'une séquence de valeurs . + Somme des valeurs de la séquence. + Séquence de valeurs dont la somme doit être calculée. + + a la valeur null. + + + Calcule la somme de la séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + La somme est supérieure à . + + + Calcule la somme de la séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la somme de la séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + La somme est supérieure à . + + + Calcule la somme de la séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + La somme est supérieure à . + + + Calcule la somme de la séquence des valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + La somme est supérieure à . + + + Calcule la somme de la séquence des valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la somme de la séquence des valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + La somme est supérieure à . + + + Calcule la somme de la séquence des valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + La somme est supérieure à . + + + Calcule la somme de la séquence des valeurs nullables obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Calcule la somme de la séquence de valeurs obtenue en appelant une fonction de projection sur chaque élément de la séquence d'entrée. + Somme des valeurs projetées. + Séquence de valeurs de type . + Fonction de projection à appliquer à chaque élément. + Type des éléments de . + + ou est null. + + + Retourne un nombre spécifié d'éléments contigus à partir du début d'une séquence. + + qui contient le nombre spécifié d'éléments à partir du début de . + Séquence à partir de laquelle retourner les éléments. + Nombre d'éléments à retourner. + Type des éléments de . + + a la valeur null. + + + Retourne des éléments d'une séquence tant que la condition spécifiée a la valeur true. + + qui contient les éléments de la séquence d'entrée placés avant l'élément à partir duquel le test spécifié par ne réussit plus. + Séquence à partir de laquelle retourner les éléments. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Retourne des éléments d'une séquence tant que la condition spécifiée a la valeur true.L'index de l'élément est utilisé dans la logique de la fonction de prédicat. + + qui contient les éléments de la séquence d'entrée placés avant l'élément à partir duquel le test spécifié par ne réussit plus. + Séquence à partir de laquelle retourner les éléments. + Fonction permettant de tester chaque élément par rapport à une condition ; le deuxième paramètre de la fonction représente l'index de l'élément dans la séquence source. + Type des éléments de . + + ou est null. + + + Réalise un classement des éléments d'une séquence dans l'ordre croissant selon une clé. + + dont les éléments sont triés selon une clé. + + qui contient les éléments à trier. + Fonction permettant d'extraire une clé de chaque élément. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou est null. + + + Réalise un classement des éléments d'une séquence dans l'ordre croissant à l'aide d'un comparateur spécifié. + + dont les éléments sont triés selon une clé. + + qui contient les éléments à trier. + Fonction permettant d'extraire une clé de chaque élément. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou ou est null. + + + Réalise un classement des éléments d'une séquence dans l'ordre décroissant selon une clé. + + dont les éléments sont triés dans l'ordre décroissant selon une clé. + + qui contient les éléments à trier. + Fonction permettant d'extraire une clé de chaque élément. + Type des éléments de . + Type de la clé retournée par la fonction représentée par . + + ou est null. + + + Réalise un classement des éléments d'une séquence dans l'ordre décroissant à l'aide d'un comparateur spécifié. + Collection dont les éléments sont triés par ordre décroissant selon une clé. + + qui contient les éléments à trier. + Fonction permettant d'extraire une clé de chaque élément. + + pour comparer les clés. + Type des éléments de . + Type de la clé retournée par la fonction . + + ou ou est null. + + + Produit l'union de deux séquences à l'aide du comparateur d'égalité par défaut. + + qui contient les éléments des deux séquences d'entrée, à l'exception des éléments en double. + Séquence dont les éléments distincts forment le premier jeu pour l'opération d'union. + Séquence dont les éléments distincts forment le second jeu pour l'opération d'union. + Type des éléments des séquences d'entrée. + + ou est null. + + + Produit l'union de deux séquences à l'aide d'un spécifié. + + qui contient les éléments des deux séquences d'entrée, à l'exception des éléments en double. + Séquence dont les éléments distincts forment le premier jeu pour l'opération d'union. + Séquence dont les éléments distincts forment le second jeu pour l'opération d'union. + + pour comparer les valeurs. + Type des éléments des séquences d'entrée. + + ou est null. + + + Filtre une séquence de valeurs selon un prédicat. + + qui contient les éléments de la séquence d'entrée qui satisfont à la condition spécifiée par . + + à filtrer. + Fonction permettant de tester chaque élément par rapport à une condition. + Type des éléments de . + + ou est null. + + + Filtre une séquence de valeurs selon un prédicat.L'index de chaque élément est utilisé dans la logique de la fonction de prédicat. + + qui contient les éléments de la séquence d'entrée qui satisfont à la condition spécifiée par . + + à filtrer. + Fonction permettant de tester chaque élément par rapport à une condition ; le deuxième paramètre de la fonction représente l'index de l'élément dans la séquence source. + Type des éléments de . + + ou est null. + + + Fusionne deux séquences en utilisant la fonction de prédicat spécifiée. + + qui contient les éléments fusionnés des deux séquences d'entrée. + Première séquence à fusionner. + Seconde séquence à fusionner. + Fonction qui spécifie comment fusionner les éléments des deux séquences. + Type des éléments de la première séquence d'entrée. + Type des éléments de la seconde séquence d'entrée. + Type des éléments de la séquence résultante. + + ou est null. + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/it/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/it/System.Linq.Queryable.xml new file mode 100644 index 0000000..d1c8247 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/it/System.Linq.Queryable.xml @@ -0,0 +1,1266 @@ + + + + System.Linq.Queryable + + + + Rappresenta una struttura ad albero dell'espressione e fornisce la funzionalità per eseguire la struttura ad albero dell'espressione dopo la riscrittura. + + + Inizializza una nuova istanza della classe . + + + Rappresenta una struttura ad albero dell'espressione e fornisce la funzionalità per eseguire la struttura ad albero dell'espressione dopo la riscrittura. + Tipo di dati del valore risultante dall'esecuzione della struttura ad albero dell'espressione. + + + Inizializza una nuova istanza della classe . + Struttura ad albero dell'espressione da associare alla nuova istanza. + + + Rappresenta un oggetto come origine dati . + + + Inizializza una nuova istanza della classe . + + + Rappresenta una raccolta come origine dati . + Tipo di dati nella raccolta. + + + Inizializza una nuova istanza della classe e la associa a una raccolta . + Raccolta da associare alla nuova istanza. + + + Inizializza una nuova istanza della classe e associa l'istanza a una struttura ad albero dell'espressione. + Struttura ad albero dell'espressione da associare alla nuova istanza. + + + Restituisce un enumeratore che può scorrere la raccolta associata o, se è null, può scorrere la raccolta risultante dalla riscrittura della struttura ad albero dell'espressione associata come query su un'origine dati e dalla relativa esecuzione. + Enumeratore che può essere utilizzato per scorrere l'origine dati associata. + + + Restituisce un enumeratore che può scorrere la raccolta associata o, se è null, può scorrere la raccolta risultante dalla riscrittura della struttura ad albero dell'espressione associata come query su un'origine dati e dalla relativa esecuzione. + Enumeratore che può essere utilizzato per scorrere l'origine dati associata. + + + Ottiene il tipo di dati nella raccolta rappresentata da questa istanza. + Tipo di dati nella raccolta rappresentata da questa istanza. + + + Ottiene la struttura ad albero dell'espressione rappresentata da questa istanza o ad essa associata. + Struttura ad albero dell'espressione rappresentata da questa istanza o ad essa associata. + + + Ottiene il provider di query associato a questa istanza. + Provider di query associato a questa istanza. + + + Costruisce un nuovo oggetto e lo associa alla struttura ad albero dell'espressione specificata che rappresenta una raccolta di dati. + Oggetto EnumerableQuery associato a . + Struttura ad albero dell'espressione da eseguire. + Tipo di dati nella raccolta rappresentata da . + + + Costruisce un nuovo oggetto e lo associa alla struttura ad albero dell'espressione specificata che rappresenta una raccolta di dati. + Oggetto associato a . + Struttura ad albero dell'espressione che rappresenta una raccolta di dati. + + + Esegue un'espressione dopo la riscrittura per chiamare i metodi anziché i metodi su tutte le origini dati enumerabili su cui non è possibile eseguire una query mediante i metodi . + Valore risultante dall'esecuzione di . + Struttura ad albero dell'espressione da eseguire. + Tipo di dati nella raccolta rappresentata da . + + + Esegue un'espressione dopo la riscrittura per chiamare i metodi anziché i metodi su tutte le origini dati enumerabili su cui non è possibile eseguire una query mediante i metodi . + Valore risultante dall'esecuzione di . + Struttura ad albero dell'espressione da eseguire. + + + Restituisce una rappresentazione testuale della raccolta enumerabile o, se è null, della struttura ad albero dell'espressione associata a questa istanza. + Rappresentazione testuale della raccolta enumerabile o, se è null, della struttura ad albero dell'espressione associata a questa istanza. + + + Fornisce un set di metodi static(Shared in Visual Basic) per l'esecuzione di query su strutture dei dati che implementano . + + + Applica una funzione accumulatore a una sequenza. + Valore finale dell'accumulatore. + Una sequenza su cui aggregare. + Una funzione accumulatore da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + non contiene elementi. + + + Applica una funzione accumulatore a una sequenza.Il valore di inizializzazione specificato viene utilizzato come valore iniziale dell'accumulatore. + Valore finale dell'accumulatore. + Una sequenza su cui aggregare. + Valore iniziale dell'accumulatore. + Una funzione accumulatore da richiamare per ogni elemento. + Tipo degli elementi di . + Tipo del valore dell'accumulatore. + + o è null. + + + Applica una funzione accumulatore a una sequenza.Il valore di inizializzazione specificato viene utilizzato come valore iniziale dell'accumulatore e la funzione specificata viene utilizzata per selezionare il valore risultante. + Il valore finale trasformato dell'accumulatore. + Una sequenza su cui aggregare. + Valore iniziale dell'accumulatore. + Una funzione accumulatore da richiamare per ogni elemento. + Una funzione per trasformare il valore finale dell'accumulatore nel valore risultante. + Tipo degli elementi di . + Tipo del valore dell'accumulatore. + Il tipo del valore risultante. + + o o è null. + + + Determina se tutti gli elementi di una sequenza soddisfano una condizione. + true se ogni elemento della sequenza di origine supera il test per il predicato specificato o se la sequenza è vuota; in caso contrario, false. + Una sequenza i cui elementi sono da testare rispetto a una condizione. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Determina se una sequenza contiene elementi. + true se la sequenza di origine contiene elementi; in caso contrario, false. + Una sequenza da verificare per controllare se è vuota. + Tipo degli elementi di . + + è null. + + + Determina un qualsiasi elemento di una sequenza soddisfa una condizione. + true se gli elementi nella sequenza di origine superano il test per il predicato specificato; in caso contrario, false. + Una sequenza i cui elementi sono da testare rispetto a una condizione. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Converte un generico oggetto in un generico oggetto . + Un oggetto che rappresenta la sequenza di input. + Sequenza da convertire. + Tipo degli elementi di . + + è null. + + + Converte un oggetto in un oggetto . + Un oggetto che rappresenta la sequenza di input. + Sequenza da convertire. + + non implementa per qualche . + + è null. + + + Calcola la media di una sequenza di valori . + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + + è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori . + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + + è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori . + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + + è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori . + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + + è null. + + non contiene elementi. + + + Calcola la media di una sequenza che ammette valori NULL. + Media della sequenza di valori; null se la sequenza di origine è vuota o contiene solo valori null. + Una sequenza che ammette valori nullable di cui calcolare la media. + + è null. + + + Calcola la media di una sequenza che ammette valori NULL. + Media della sequenza di valori; null se la sequenza di origine è vuota o contiene solo valori null. + Una sequenza che ammette valori nullable di cui calcolare la media. + + è null. + + + Calcola la media di una sequenza che ammette valori NULL. + Media della sequenza di valori; null se la sequenza di origine è vuota o contiene solo valori null. + Una sequenza che ammette valori nullable di cui calcolare la media. + + è null. + + + Calcola la media di una sequenza che ammette valori NULL. + Media della sequenza di valori; null se la sequenza di origine è vuota o contiene solo valori null. + Una sequenza che ammette valori nullable di cui calcolare la media. + + è null. + + + Calcola la media di una sequenza che ammette valori NULL. + Media della sequenza di valori; null se la sequenza di origine è vuota o contiene solo valori null. + Una sequenza che ammette valori nullable di cui calcolare la media. + + è null. + + + Calcola la media di una sequenza di valori . + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + + è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza dei valori. + Una sequenza di valori utilizzata per calcolare una media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + non contiene elementi. + + + Calcola la media di una sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + non contiene elementi. + + + Calcola la media di una sequenza che ammette valori NULL, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza di valori; null se la sequenza è vuota o contiene solo valori null. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la media di una sequenza che ammette valori NULL, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza di valori; null se la sequenza è vuota o contiene solo valori null. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la media di una sequenza che ammette valori NULL, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza di valori; null se la sequenza è vuota o contiene solo valori null. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la media di una sequenza che ammette valori NULL, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza di valori; null se la sequenza è vuota o contiene solo valori null. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la media di una sequenza che ammette valori NULL, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza di valori; null se la sequenza è vuota o contiene solo valori null. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la media di una sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Media della sequenza dei valori. + Sequenza di valori di cui calcolare la media. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + non contiene elementi. + + + Converte gli elementi di un oggetto nel tipo specificato. + Oggetto che contiene ogni elemento della sequenza di origine convertito nel tipo specificato. + Oggetto che contiene gli elementi da convertire. + Tipo in cui convertire gli elementi di . + + è null. + Non è possibile eseguire il cast di un elemento della sequenza al tipo . + + + Concatena due sequenze. + Un oggetto che contiene gli elementi concatenati delle due sequenze di input. + Prima sequenza da concatenare. + Sequenza da concatenare alla prima sequenza. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Determina se una sequenza contiene uno specifico elemento utilizzando l'operatore di confronto uguaglianze predefinito. + true se la sequenza di input contiene un elemento con il valore specificato; altrimenti, false. + Oggetto in cui individuare . + Oggetto da individuare nella sequenza . + Tipo degli elementi di . + + è null. + + + Determina se una sequenza contiene un elemento specificato utilizzando un oggetto specificato. + true se la sequenza di input contiene un elemento con il valore specificato; altrimenti, false. + Oggetto in cui individuare . + Oggetto da individuare nella sequenza . + Oggetto per confrontare i valori. + Tipo degli elementi di . + + è null. + + + Restituisce il numero di elementi in una sequenza. + Numero di elementi nella sequenza di input. + Oggetto che contiene gli elementi da contare. + Tipo degli elementi di . + + è null. + Il numero di elementi in è maggiore di . + + + Restituisce il numero di elementi nella sequenza specificata che soddisfano una condizione. + Il numero di elementi nella sequenza che soddisfa la condizione nella funzione predicativa. + Oggetto che contiene gli elementi da contare. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + Il numero di elementi in è maggiore di . + + + Restituisce gli elementi della sequenza specificata o il valore predefinito del parametro di tipo in una raccolta di singleton se la sequenza è vuota. + Oggetto che contiene default() se è vuoto; in caso contrario, . + Oggetto per il quale restituire un valore predefinito se vuoto. + Tipo degli elementi di . + + è null. + + + Restituisce gli elementi della sequenza specificata o il valore specificato in una raccolta di singleton se la sequenza è vuota. + Oggetto che contiene se è vuota; in caso contrario, . + Oggetto per il quale restituire il valore specificato se vuoto. + Valore da restituire se la sequenza è vuota. + Tipo degli elementi di . + + è null. + + + Restituisce elementi distinti da una sequenza utilizzando l'operatore di confronto uguaglianze predefinito per confrontare i valori. + Oggetto che contiene elementi distinti da . + Oggetto da cui rimuovere i duplicati. + Tipo degli elementi di . + + è null. + + + Restituisce elementi distinti da una sequenza utilizzando uno specificato per confrontare valori. + Oggetto che contiene elementi distinti da . + Oggetto da cui rimuovere i duplicati. + Oggetto per confrontare i valori. + Tipo degli elementi di . + + o è null. + + + Restituisce l'elemento in corrispondenza dell’indice specificato in una sequenza. + L’elemento alla posizione specificata in . + Oggetto dal quale restituire un elemento. + Indice in base zero dell'elemento da recuperare. + Tipo degli elementi di . + + è null. + + è minore di zero. + + + Restituisce l'elemento in corrispondenza di un indice specificato in una sequenza o un valore predefinito se l'indice è esterno all'intervallo. + default() se è esterno ai limiti di ; in caso contrario, l'elemento in corrispondenza della posizione specificata in . + Oggetto dal quale restituire un elemento. + Indice in base zero dell'elemento da recuperare. + Tipo degli elementi di . + + è null. + + + Produce la differenza insiemistica di due sequenze utilizzando l'operatore di confronto eguaglianze predefinito per confrontare i valori. + Oggetto che contiene la differenza insiemistica delle due sequenze. + Un oggetto di cui saranno restituiti gli elementi che non sono presenti anche in . + Un oggetto i cui elementi che sono presenti anche nella prima sequenza non saranno visualizzati nella sequenza restituita. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Produce la differenza insiemistica delle due sequenze utilizzando l’oggetto specificato per confrontare i valori. + Oggetto che contiene la differenza insiemistica delle due sequenze. + Un oggetto di cui saranno restituiti gli elementi che non sono presenti anche in . + Un oggetto i cui elementi che sono presenti anche nella prima sequenza non saranno visualizzati nella sequenza restituita. + Oggetto per confrontare i valori. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Restituisce il primo elemento di una sequenza. + Il primo elemento in . + Oggetto di cui restituire il primo elemento. + Tipo degli elementi di . + + è null. + La sequenza di origine è vuota. + + + Restituisce il primo elemento di una sequenza che soddisfa una condizione specificata. + Il primo elemento in che passa il test rispetto a . + Oggetto dal quale restituire un elemento. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + Nessun elemento soddisfa la condizione in .- oppure -La sequenza di origine è vuota. + + + Restituisce il primo elemento di una sequenza o un valore predefinito se la sequenza non contiene elementi. + default() se è vuota; in caso contrario, il primo elemento di . + Oggetto di cui restituire il primo elemento. + Tipo degli elementi di . + + è null. + + + Restituisce il primo elemento di una sequenza che soddisfa una condizione specificata o un valore predefinito se un tale elemento non viene trovato. + default() se è vuota o se nessun elemento supera il test specificato da ; in caso contrario, il primo elemento in che supera il test specificato da . + Oggetto dal quale restituire un elemento. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Raggruppa gli elementi di una sequenza secondo una specificata funzione del selettore principale. + Un IQueryable<IGrouping<TKey, TSource>> in C# o IQueryable(Of IGrouping(Of TKey, TSource)) in Visual Basic dove ogni oggetto contiene una sequenza di oggetti e una chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + + o è null. + + + Raggruppa gli elementi di una sequenza secondo una specificata funzione del selettore principale e confronta le chiavi utilizzando un operatore di confronto specificato. + Un IQueryable<IGrouping<TKey, TSource>> in C# o IQueryable(Of IGrouping(Of TKey, TSource)) in Visual Basic dove ogni contiene una sequenza di oggetti e una chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Oggetto di cui confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + + o o è null. + + + Raggruppa gli elementi di una sequenza in base a una funzione specificata del selettore principale e proietta gli elementi di ogni gruppo utilizzando una funzione specificata. + Un IQueryable<IGrouping<TKey, TElement>> in C# o IQueryable(Of IGrouping(Of TKey, TElement)) in Visual Basic dove ogni contiene una sequenza di oggetti di tipo e una chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Funzione per eseguire il mapping di ogni elemento di origine a un elemento in un oggetto . + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + Tipo degli elementi contenuti in ciascun oggetto . + + o o è null. + + + Raggruppa gli elementi di una sequenza e proietta gli elementi di ogni gruppo utilizzando una funzione specificata.I valori chiave vengono confrontati utilizzando un operatore di confronto specificato. + Un IQueryable<IGrouping<TKey, TElement>> in C# o IQueryable(Of IGrouping(Of TKey, TElement)) in Visual Basic dove ogni contiene una sequenza di oggetti di tipo e una chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Funzione per eseguire il mapping di ogni elemento di origine a un elemento in un oggetto . + Oggetto di cui confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + Tipo degli elementi contenuti in ciascun oggetto . + + o o o è null. + + + Raggruppa gli elementi di una sequenza in base a una funzione del selettore principale specificata e crea un valore risultante da ciascun gruppo e relativa chiave.Gli elementi di ogni gruppo vengono proiettati utilizzando una funzione specificata. + Oggetto T:System.Linq.IQueryable`1 che ha un argomento di tipo di e dove ogni elemento rappresenta una proiezione su un gruppo e sulla relativa chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Funzione per eseguire il mapping di ogni elemento di origine a un elemento in un oggetto . + Funzione per creare un valore di risultato da ogni gruppo. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + Tipo degli elementi contenuti in ciascun oggetto . + Tipo del valore restituito dall'oggetto . + + o o o è null. + + + Raggruppa gli elementi di una sequenza in base a una funzione del selettore principale specificata e crea un valore risultante da ciascun gruppo e relativa chiave.Le chiavi sono confrontate utilizzando un operatore di confronto specificato e gli elementi di ogni gruppo vengono proiettati utilizzando una funzione specificata. + Oggetto T:System.Linq.IQueryable`1 che ha un argomento di tipo di e dove ogni elemento rappresenta una proiezione su un gruppo e sulla relativa chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Funzione per eseguire il mapping di ogni elemento di origine a un elemento in un oggetto . + Funzione per creare un valore di risultato da ogni gruppo. + Oggetto di cui confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + Tipo degli elementi contenuti in ciascun oggetto . + Tipo del valore restituito dall'oggetto . + + o o o o è null. + + + Raggruppa gli elementi di una sequenza in base a una funzione del selettore principale specificata e crea un valore risultante da ciascun gruppo e relativa chiave. + Oggetto T:System.Linq.IQueryable`1 che ha un argomento di tipo di e dove ogni elemento rappresenta una proiezione su un gruppo e sulla relativa chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Funzione per creare un valore di risultato da ogni gruppo. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + Tipo del valore restituito dall'oggetto . + + o o è null. + + + Raggruppa gli elementi di una sequenza in base a una funzione del selettore principale specificata e crea un valore risultante da ciascun gruppo e relativa chiave.Le chiavi vengono confrontate utilizzando un operatore di confronto specificato. + Oggetto T:System.Linq.IQueryable`1 che ha un argomento di tipo di e dove ogni elemento rappresenta una proiezione su un gruppo e sulla relativa chiave. + Oggetto i cui elementi sono da raggruppare. + Funzione per estrarre la chiave per ogni elemento. + Funzione per creare un valore di risultato da ogni gruppo. + Oggetto di cui confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata nell'oggetto . + Tipo del valore restituito dall'oggetto . + + o o o è null. + + + Correla gli elementi di due sequenze in base all'uguaglianza delle chiavi e raggruppa i risultati.Per confrontare le chiavi viene utilizzato l'operatore di confronto uguaglianze predefinito. + Un oggetto che contiene elementi di tipo ottenuti eseguendo un'aggiunta raggruppata delle due sequenze. + Prima sequenza da unire. + Sequenza da unire alla prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della seconda sequenza. + Funzione per creare un elemento di risultato da un elemento dalla prima sequenza e una raccolta di elementi corrispondenti dalla seconda sequenza. + Tipo degli elementi della prima sequenza. + Tipo degli elementi della seconda sequenza. + Tipo delle chiavi restituite dalle funzioni del selettore principale. + Tipo degli elementi di risultato. + + o o o o è null. + + + Correla gli elementi di due sequenze in base all'uguaglianza delle chiavi e raggruppa i risultati.Viene utilizzato un oggetto specificato per confrontare le chiavi. + Un oggetto che contiene elementi di tipo ottenuti eseguendo un'aggiunta raggruppata delle due sequenze. + Prima sequenza da unire. + Sequenza da unire alla prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della seconda sequenza. + Funzione per creare un elemento di risultato da un elemento dalla prima sequenza e una raccolta di elementi corrispondenti dalla seconda sequenza. + Un operatore di confronto per la codifica hash e il confronto delle chiavi. + Tipo degli elementi della prima sequenza. + Tipo degli elementi della seconda sequenza. + Tipo delle chiavi restituite dalle funzioni del selettore principale. + Tipo degli elementi di risultato. + + o o o o è null. + + + Produce l’intersezione insiemistica di due sequenze utilizzando l'operatore di confronto uguaglianze predefinito per confrontare i valori. + Una sequenza che contiene l'intersezione insiemistica delle due sequenze. + Una sequenza di cui vengono restituiti gli elementi distinti presenti anche in . + Una sequenza di cui vengono restituiti gli elementi distinti presenti anche nella prima sequenza. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Produce l’intersezione insiemistica delle due sequenze utilizzando l’oggetto specificato per confrontare i valori. + Oggetto che contiene l’intersezione insiemistica delle due sequenze. + Un oggetto di cui vengono restituiti gli elementi distinti che sono presenti anche in . + Un oggetto di cui vengono restituiti gli elementi distinti presenti anche nella prima sequenza. + Oggetto per confrontare i valori. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Correla gli elementi di due sequenze in base alle chiavi corrispondenti.Per confrontare le chiavi viene utilizzato l'operatore di confronto uguaglianze predefinito. + Un oggetto che contiene elementi di tipo ottenuti eseguendo un inner join sulle due sequenze. + Prima sequenza da unire. + Sequenza da unire alla prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della seconda sequenza. + Funzione per creare un elemento di risultato da due elementi corrispondenti. + Tipo degli elementi della prima sequenza. + Tipo degli elementi della seconda sequenza. + Tipo delle chiavi restituite dalle funzioni del selettore principale. + Tipo degli elementi di risultato. + + o o o o è null. + + + Correla gli elementi di due sequenze in base alle chiavi corrispondenti.Viene utilizzato un oggetto specificato per confrontare le chiavi. + Un oggetto che contiene elementi di tipo ottenuti eseguendo un inner join sulle due sequenze. + Prima sequenza da unire. + Sequenza da unire alla prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della prima sequenza. + Funzione per estrarre la chiave di aggiunta da ogni elemento della seconda sequenza. + Funzione per creare un elemento di risultato da due elementi corrispondenti. + Un oggetto per la codifica hash e il confronto delle chiavi. + Tipo degli elementi della prima sequenza. + Tipo degli elementi della seconda sequenza. + Tipo delle chiavi restituite dalle funzioni del selettore principale. + Tipo degli elementi di risultato. + + o o o o è null. + + + Restituisce l'ultimo elemento in una sequenza. + Il valore dell’ultima posizione in . + Oggetto di cui restituire l’ultimo elemento. + Tipo degli elementi di . + + è null. + La sequenza di origine è vuota. + + + Restituisce l’ultimo elemento di una sequenza che soddisfa una condizione specificata. + L'ultimo elemento in che supera il test specificato da . + Oggetto dal quale restituire un elemento. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + Nessun elemento soddisfa la condizione in .- oppure -La sequenza di origine è vuota. + + + Restituisce l’ultimo elemento in una sequenza o un valore predefinito se la sequenza non contiene elementi. + default() se è vuota; in caso contrario, l’ultimo elemento di . + Oggetto di cui restituire l’ultimo elemento. + Tipo degli elementi di . + + è null. + + + Restituisce l’ultimo elemento di una sequenza che soddisfa una condizione specificata o un valore predefinito se un tale elemento non viene trovato. + default() se è vuota o se nessun elemento supera il test nella funzione predicativa; in caso contrario, l'ultimo elemento di che passa il test nella funzione predicativa. + Oggetto dal quale restituire un elemento. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Restituisce un oggetto che rappresenta il numero totale di elementi in una sequenza. + Numero di elementi in . + Oggetto che contiene gli elementi da contare. + Tipo degli elementi di . + + è null. + Il numero di elementi è maggiore di . + + + Restituisce un oggetto che rappresenta il numero di elementi in una sequenza che soddisfano una condizione. + Il numero di elementi in che soddisfa la condizione nella funzione predicativa. + Oggetto che contiene gli elementi da contare. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + Il numero di elementi corrispondenti è maggiore di . + + + Restituisce il valore massimo di un generico oggetto . + Valore massimo della sequenza. + Una sequenza di valori della quale determinare il massimo. + Tipo degli elementi di . + + è null. + + + Richiama una funzione di proiezione su ogni elemento di un generico oggetto e restituisce il valore massimo risultante. + Valore massimo della sequenza. + Una sequenza di valori della quale determinare il massimo. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + Tipo del valore restituito dalla funzione rappresentata dall'oggetto . + + o è null. + + + Restituisce il valore minimo di un generico oggetto . + Valore minimo della sequenza. + Una sequenza di valori della quale determinare il minimo. + Tipo degli elementi di . + + è null. + + + Richiama una funzione di proiezione su ogni elemento di un generico oggetto e restituisce il valore minimo risultante. + Valore minimo della sequenza. + Una sequenza di valori della quale determinare il minimo. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + Tipo del valore restituito dalla funzione rappresentata dall'oggetto . + + o è null. + + + Filtra gli elementi di un oggetto in base a un tipo specificato. + Raccolta che contiene elementi da che sono di tipo . + Un oggetto i cui elementi devono essere filtrati. + Il tipo in base al quale filtrare gli elementi della sequenza. + + è null. + + + Ordina in senso crescente gli elementi di una sequenza secondo una chiave. + Oggetto i cui elementi vengono ordinati secondo una chiave. + Sequenza di valori da ordinare. + Funzione per estrarre una chiave da un elemento. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o è null. + + + Ordina in ordine crescente gli elementi di una sequenza utilizzando un operatore di confronto specificato. + Oggetto i cui elementi vengono ordinati secondo una chiave. + Sequenza di valori da ordinare. + Funzione per estrarre una chiave da un elemento. + Oggetto per confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o o è null. + + + Ordina in senso decrescente gli elementi di una sequenza secondo una chiave. + Oggetto i cui elementi vengono ordinati in senso decrescente in base a una chiave. + Sequenza di valori da ordinare. + Funzione per estrarre una chiave da un elemento. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o è null. + + + Ordina in senso decrescente gli elementi di una sequenza utilizzando un operatore di confronto specificato. + Oggetto i cui elementi vengono ordinati in senso decrescente in base a una chiave. + Sequenza di valori da ordinare. + Funzione per estrarre una chiave da un elemento. + Oggetto per confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o o è null. + + + Inverte l'ordine degli elementi in una sequenza. + Un oggetto i cui elementi corrispondono a quelli della sequenza di input, in ordine inverso. + Sequenza di valori da invertire. + Tipo degli elementi di . + + è null. + + + Proietta ogni elemento di una sequenza in una nuova maschera. + Un oggetto i cui elementi sono il risultato ottenuto richiamando una funzione di proiezione su ogni elemento di . + Sequenza di valori da proiettare. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + Tipo del valore restituito dalla funzione rappresentata dall'oggetto . + + o è null. + + + Proietta ogni elemento di una sequenza in un nuovo modulo incorporando l'indice dell'elemento. + Un oggetto i cui elementi sono il risultato ottenuto richiamando una funzione di proiezione su ogni elemento di . + Sequenza di valori da proiettare. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + Tipo del valore restituito dalla funzione rappresentata dall'oggetto . + + o è null. + + + Proietta ogni elemento di una sequenza a un oggetto e richiama una funzione del selettore di risultato su ogni elemento al suo interno.I valori risultanti da ogni sequenza intermedia vengono combinati in un singola sequenza unidimensionale e restituiti. + Un oggetto i cui elementi sono il risultato ottenuto richiamando la funzione di proiezione uno a molti su ogni elemento di ed eseguire quindi il mapping di ognuno degli elementi di tale sequenza e del corrispondente elemento di a un elemento di risultato. + Sequenza di valori da proiettare. + Una funzione di proiezione da applicare a ogni elemento della sequenza di input. + Una funzione di proiezione da applicare a ogni elemento di ogni sequenza intermedia. + Tipo degli elementi di . + Il tipo degli elementi intermedi raccolti dalla funzione rappresentata da . + Tipo degli elementi della sequenza risultante. + + o o è null. + + + Proietta ogni elemento di una sequenza a un oggetto e combina le sequenze risultanti in una sequenza. + Un oggetto i cui elementi sono il risultato ottenuto richiamando una funzione di proiezione uno a molti su ogni elemento della sequenza di input. + Sequenza di valori da proiettare. + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + Il tipo degli elementi della sequenza restituiti dalla funzione rappresentata da . + + o è null. + + + Proietta ogni elemento di una sequenza a un oggetto che incorpora l'indice dell'elemento di origine che lo ha prodotto.Viene quindi richiamata una funzione del selettore di risultato su ogni elemento di ogni sequenza intermedia e i valori risultanti vengono combinati in una singola sequenza unidimensionale e restituiti. + Un oggetto i cui elementi sono il risultato ottenuto richiamando la funzione di proiezione uno a molti su ogni elemento di ed eseguire quindi il mapping di ognuno degli elementi di tale sequenza e del corrispondente elemento di a un elemento di risultato. + Sequenza di valori da proiettare. + Una funzione di proiezione da applicare a ogni elemento della sequenza di input; il secondo parametro di questa funzione rappresenta l'indice dell'elemento di origine. + Una funzione di proiezione da applicare a ogni elemento di ogni sequenza intermedia. + Tipo degli elementi di . + Il tipo degli elementi intermedi raccolti dalla funzione rappresentata da . + Tipo degli elementi della sequenza risultante. + + o o è null. + + + Proietta ogni elemento di una sequenza a un oggetto e combina le sequenze risultanti in una sequenza.L'indice di ogni elemento di origine viene utilizzato nella maschera proiettata di tale elemento. + Un oggetto i cui elementi sono il risultato ottenuto richiamando una funzione di proiezione uno a molti su ogni elemento della sequenza di input. + Sequenza di valori da proiettare. + Una funzione di proiezione da applicare a ogni elemento; il secondo parametro di questa funzione rappresenta l'indice dell'elemento di origine. + Tipo degli elementi di . + Il tipo degli elementi della sequenza restituiti dalla funzione rappresentata da . + + o è null. + + + Determina se due sequenze sono uguali utilizzando l'operatore di confronto uguaglianze predefinito per confrontare gli elementi. + true se le due sequenze di origine sono di lunghezza uguale e gli elementi corrispondenti risultano uguali; in caso contrario, false. + Un oggetto cui elementi devono venire confrontati con quelli di . + Un oggetto i cui elementi devono venire confrontati con quelli della prima sequenza. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Determina se due sequenze sono uguali utilizzando un oggetto specificato per confrontare gli elementi. + true se le due sequenze di origine sono di lunghezza uguale e gli elementi corrispondenti risultano uguali; in caso contrario, false. + Un oggetto cui elementi devono venire confrontati con quelli di . + Un oggetto i cui elementi devono venire confrontati con quelli della prima sequenza. + Un oggetto da utilizzare per confrontare gli elementi. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Restituisce il singolo elemento di una sequenza e genera un'eccezione se nella sequenza non è presente esattamente un elemento. + Singolo elemento della sequenza di input. + Oggetto di cui restituire il singolo elemento. + Tipo degli elementi di . + + è null. + + presenta più di un elemento. + + + Restituisce il singolo elemento di una sequenza che soddisfa una condizione specificata e genera un'eccezione se esiste più di un elemento. + Il singolo elemento della sequenza di input che soddisfa la condizione in . + Un oggetto dal quale restituire un singolo elemento. + Funzione per testare un elemento per una condizione. + Tipo degli elementi di . + Il parametro o è null. + Nessun elemento soddisfa la condizione in .- oppure -Più di un elemento soddisfa la condizione in .- oppure -La sequenza di origine è vuota. + + + Restituisce il singolo elemento di una sequenza o un valore predefinito se la sequenza è vuota. Questo metodo genera un'eccezione se esiste più di un elemento nella sequenza. + Il singolo elemento della sequenza di input, o default() se la sequenza non contiene elementi. + Oggetto di cui restituire il singolo elemento. + Tipo degli elementi di . + + è null. + + presenta più di un elemento. + + + Restituisce il singolo elemento di una sequenza che soddisfa una condizione specificata o un valore predefinito se tale elemento esiste. Questo metodo genera un'eccezione se più di un elemento soddisfa la condizione. + Il singolo elemento della sequenza di input che soddisfa la condizione in , o default() se tale elemento non viene trovato. + Un oggetto dal quale restituire un singolo elemento. + Funzione per testare un elemento per una condizione. + Tipo degli elementi di . + Il parametro o è null. + Più di un elemento soddisfa la condizione in . + + + Ignora un numero specificato di elementi in una sequenza e quindi restituisce gli elementi rimanenti. + Un oggetto che contiene elementi presenti dopo l'indice specificato nella sequenza di input. + Oggetto dal quale restituire elementi. + Il numero di elementi da ignorare prima di restituire gli elementi rimanenti. + Tipo degli elementi di . + + è null. + + + Ignora gli elementi in sequenza finché la condizione specificata è soddisfatta e quindi restituisce gli elementi rimanenti. + Un oggetto che contiene elementi da a partire dal primo elemento nella serie lineare che non supera il test specificato da . + Oggetto dal quale restituire elementi. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Ignora gli elementi in sequenza finché la condizione specificata è soddisfatta e quindi restituisce gli elementi rimanenti.L'indice dell'elemento viene utilizzato nella logica della funzione predicativa. + Un oggetto che contiene elementi da a partire dal primo elemento nella serie lineare che non supera il test specificato da . + Oggetto dal quale restituire elementi. + Una funzione per testare ogni elemento per una condizione; il secondo parametro di questa funzione rappresenta l'indice dell'elemento di origine. + Tipo degli elementi di . + Il parametro o è null. + + + Calcola la somma di una sequenza di valori . + Somma dei valori della sequenza. + Sequenza di valori di cui calcolare la somma. + + è null. + La somma è maggiore di . + + + Calcola la somma di una sequenza di valori . + Somma dei valori della sequenza. + Sequenza di valori di cui calcolare la somma. + + è null. + + + Calcola la somma di una sequenza di valori . + Somma dei valori della sequenza. + Sequenza di valori di cui calcolare la somma. + + è null. + La somma è maggiore di . + + + Calcola la somma di una sequenza di valori . + Somma dei valori della sequenza. + Sequenza di valori di cui calcolare la somma. + + è null. + La somma è maggiore di . + + + Calcola la somma di una sequenza che ammette valori nullable. + Somma dei valori della sequenza. + Sequenza che ammette valori nullable di cui calcolare la somma. + + è null. + La somma è maggiore di . + + + Calcola la somma di una sequenza che ammette valori nullable. + Somma dei valori della sequenza. + Una sequenza che ammette valori nullable di cui calcolare la somma. + + è null. + + + Calcola la somma di una sequenza che ammette valori nullable. + Somma dei valori della sequenza. + Sequenza che ammette valori nullable di cui calcolare la somma. + + è null. + La somma è maggiore di . + + + Calcola la somma di una sequenza che ammette valori nullable. + Somma dei valori della sequenza. + Sequenza che ammette valori nullable di cui calcolare la somma. + + è null. + La somma è maggiore di . + + + Calcola la somma di una sequenza che ammette valori nullable. + Somma dei valori della sequenza. + Una sequenza che ammette valori nullable di cui calcolare la somma. + + è null. + + + Calcola la somma di una sequenza di valori . + Somma dei valori della sequenza. + Sequenza di valori di cui calcolare la somma. + + è null. + + + Calcola la somma della sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + La somma è maggiore di . + + + Calcola la somma della sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la somma della sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + La somma è maggiore di . + + + Calcola la somma della sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + La somma è maggiore di . + + + Calcola la somma della sequenza di valori nullable, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + La somma è maggiore di . + + + Calcola la somma della sequenza di valori nullable, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la somma della sequenza di valori nullable, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + La somma è maggiore di . + + + Calcola la somma della sequenza di valori nullable, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + La somma è maggiore di . + + + Calcola la somma della sequenza di valori nullable, ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Calcola la somma della sequenza di valori ottenuta chiamando una funzione di proiezione su ogni elemento della sequenza di input. + Somma dei valori proiettati. + Sequenza di valori di tipo . + Funzione di proiezione da applicare a ogni elemento. + Tipo degli elementi di . + + o è null. + + + Restituisce un numero specificato di elementi contigui dall'inizio di una sequenza. + Oggetto che contiene il numero specificato di elementi dall'inizio di . + Sequenza dalla quale vengono restituiti gli elementi. + Numero di elementi da restituire. + Tipo degli elementi di . + + è null. + + + Restituisce elementi di una sequenza finché una condizione specificata è soddisfatta. + Oggetto che contiene elementi dalla sequenza di input che precedono il primo elemento che non soddisfa più il test specificato da . + Sequenza dalla quale vengono restituiti gli elementi. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Restituisce elementi di una sequenza finché una condizione specificata è soddisfatta.L'indice dell'elemento viene utilizzato nella logica della funzione predicativa. + Oggetto che contiene elementi dalla sequenza di input che precedono il primo elemento che non soddisfa più il test specificato da . + Sequenza dalla quale vengono restituiti gli elementi. + Una funzione per testare ogni elemento per una condizione; il secondo parametro della funzione rappresenta l'indice dell'elemento della sequenza di origine. + Tipo degli elementi di . + Il parametro o è null. + + + Esegue un successivo ordinamento in senso crescente in base a una chiave degli elementi di una sequenza. + Oggetto i cui elementi vengono ordinati secondo una chiave. + Oggetto che contiene gli elementi da ordinare. + Funzione per estrarre una chiave da ogni elemento. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o è null. + + + Esegue un ordinamento secondario in senso crescente degli elementi di una sequenza utilizzando un operatore di confronto specificato. + Oggetto i cui elementi vengono ordinati secondo una chiave. + Oggetto che contiene gli elementi da ordinare. + Funzione per estrarre una chiave da ogni elemento. + Oggetto per confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o o è null. + + + Esegue un successivo ordinamento in senso decrescente in base a una chiave degli elementi di una sequenza. + Oggetto i cui elementi vengono ordinati in senso decrescente in base a una chiave. + Oggetto che contiene gli elementi da ordinare. + Funzione per estrarre una chiave da ogni elemento. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione rappresentata dall'oggetto . + + o è null. + + + Esegue un ordinamento secondario in senso decrescente degli elementi di una sequenza utilizzando un operatore di confronto specificato. + Raccolta i cui elementi vengono disposti in ordine decrescente in base a una chiave. + Oggetto che contiene gli elementi da ordinare. + Funzione per estrarre una chiave da ogni elemento. + Oggetto per confrontare le chiavi. + Tipo degli elementi di . + Tipo della chiave restituita dalla funzione . + + o o è null. + + + Produce l'unione insiemistica delle due sequenze utilizzando l'operatore di confronto uguaglianze predefinito. + Oggetto che contiene gli elementi di entrambe le sequenze di input, tranne i duplicati. + Una sequenza i cui elementi distinti formano il primo insieme per l'operazione di unione. + Una sequenza i cui elementi distinti formano il secondo insieme per l'operazione di unione. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Produce l'unione insiemistica di due sequenze utilizzando un oggetto specificato. + Oggetto che contiene gli elementi di entrambe le sequenze di input, tranne i duplicati. + Una sequenza i cui elementi distinti formano il primo insieme per l'operazione di unione. + Una sequenza i cui elementi distinti formano il secondo insieme per l'operazione di unione. + Oggetto per confrontare i valori. + Tipo degli elementi delle sequenze di input. + + o è null. + + + Filtra una sequenza di valori in base a un predicato. + Oggetto che contiene gli elementi dalla sequenza di input che soddisfano la condizione specificata da . + Oggetto da filtrare. + Funzione per testare ogni elemento rispetto a una condizione. + Tipo degli elementi di . + Il parametro o è null. + + + Filtra una sequenza di valori in base a un predicato.L'indice di ogni elemento viene utilizzato nella logica della funzione predicativa. + Oggetto che contiene gli elementi dalla sequenza di input che soddisfano la condizione specificata da . + Oggetto da filtrare. + Una funzione per testare ogni elemento per una condizione; il secondo parametro della funzione rappresenta l'indice dell'elemento della sequenza di origine. + Tipo degli elementi di . + Il parametro o è null. + + + Unisce due sequenze tramite la funzione del predicato specificata. + Oggetto che contiene gli elementi uniti delle due sequenze di input. + Prima sequenza da unire. + Seconda sequenza da unire. + Una funzione che specifica come unire gli elementi dalle due sequenze. + Tipo degli elementi della prima sequenza di input. + Tipo degli elementi della seconda sequenza di input. + Tipo degli elementi della sequenza risultante. + + o è null. + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/ja/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/ja/System.Linq.Queryable.xml new file mode 100644 index 0000000..725f96e --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/ja/System.Linq.Queryable.xml @@ -0,0 +1,1482 @@ + + + + System.Linq.Queryable + + + + 式ツリーを表し、式ツリーを書き換えた後で式ツリーを実行する機能を提供します。 + + + + クラスの新しいインスタンスを初期化します。 + + + 式ツリーを表し、式ツリーを書き換えた後で式ツリーを実行する機能を提供します。 + 式ツリーの実行結果の値のデータ型。 + + + + クラスの新しいインスタンスを初期化します。 + 新しいインスタンスに関連付ける式ツリー。 + + + + データ ソースとして表します。 + + + + クラスの新しいインスタンスを初期化します。 + + + + コレクションを データ ソースとして表します。 + コレクション内のデータの型。 + + + + クラスの新しいインスタンスを初期化し、それを コレクションに関連付けます。 + 新しいインスタンスに関連付けるコレクション。 + + + + クラスの新しいインスタンスを初期化し、インスタンスを式ツリーに関連付けます。 + 新しいインスタンスに関連付ける式ツリー。 + + + 関連付けられている コレクション、またはこれが null の場合は、関連付けられている式ツリーを データ ソースに対するクエリとして書き換え、それを実行することによって得られるコレクションを反復処理できる列挙子を返します。 + 関連付けられたデータ ソースの反復処理に使用できる列挙子。 + + + 関連付けられている コレクション、またはこれが null の場合は、関連付けられている式ツリーを データ ソースに対するクエリとして書き換え、それを実行することによって得られるコレクションを反復処理できる列挙子を返します。 + 関連付けられたデータ ソースの反復処理に使用できる列挙子。 + + + このインスタンスが表すコレクション内のデータの型を取得します。 + このインスタンスが表すコレクション内のデータの型。 + + + このインスタンスに関連付けられた、またはこのインスタンスを表す式ツリーを取得します。 + このインスタンスに関連付けられた、またはこのインスタンスを表す式ツリー。 + + + このインスタンスに関連付けられたクエリ プロバイダーを取得します。 + このインスタンスに関連付けられたクエリ プロバイダー。 + + + 新しい オブジェクトを構築し、それを、データの コレクションを表す指定した式ツリーに関連付けます。 + + に関連付けられた EnumerableQuery オブジェクト。 + 実行する式ツリー。 + + が表すコレクション内のデータの型。 + + + 新しい オブジェクトを構築し、それを、データの コレクションを表す指定した式ツリーに関連付けます。 + + に関連付ける オブジェクト。 + データの コレクションを表す式ツリー。 + + + + メソッドでクエリできない列挙可能なデータ ソースで、 メソッドの代わりに メソッドを呼び出すように式を書き換えた後で、式を実行します。 + + の実行結果の値。 + 実行する式ツリー。 + + が表すコレクション内のデータの型。 + + + + メソッドでクエリできない列挙可能なデータ ソースで、 メソッドの代わりに メソッドを呼び出すように式を書き換えた後で、式を実行します。 + + の実行結果の値。 + 実行する式ツリー。 + + + 列挙可能なコレクションのテキスト表現を返します。これが null の場合は、このインスタンスに関連付けられている式ツリーのテキスト表現を返します。 + 列挙可能なコレクションのテキスト表現。これが null の場合は、このインスタンスに関連付けられている式ツリーのテキスト表現。 + + + + を実装するデータ構造を照会するための一連の static (Visual Basic の場合は Shared) メソッドを提供します。 + + + シーケンスにアキュムレータ関数を適用します。 + 最終的なアキュムレータ値。 + 集計対象のシーケンス。 + 各要素に適用するアキュムレータ関数。 + + の要素の型。 + + または が null です。 + + に要素が含まれていません。 + + + シーケンスにアキュムレータ関数を適用します。指定されたシード値が最初のアキュムレータ値として使用されます。 + 最終的なアキュムレータ値。 + 集計対象のシーケンス。 + 最初のアキュムレータ値。 + 各要素に対して呼び出すアキュムレータ関数。 + + の要素の型。 + アキュムレータ値の型。 + + または が null です。 + + + シーケンスにアキュムレータ関数を適用します。指定したシード値は最初のアキュムレータ値として使用され、指定した関数は結果値の選択に使用されます。 + 変換された最終的なアキュムレータ値。 + 集計対象のシーケンス。 + 最初のアキュムレータ値。 + 各要素に対して呼び出すアキュムレータ関数。 + 最終的なアキュムレータ値を結果値に変換する関数。 + + の要素の型。 + アキュムレータ値の型。 + 結果の値の型。 + + 、または が null です。 + + + シーケンスのすべての要素が条件を満たしているかどうかを判断します。 + 指定された述語でソース シーケンスのすべての要素がテストに合格する場合は true。それ以外の場合は false。 + 条件を満たしているかどうかをテストする要素を含むシーケンス。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + シーケンスに要素が含まれているかどうかを判断します。 + ソース シーケンスに要素が含まれている場合は true。それ以外の場合は false。 + 空かどうかを確認するシーケンス。 + + の要素の型。 + + は null なので、 + + + シーケンスの任意の要素が条件を満たしているかどうかを判断します。 + 指定された述語でソース シーケンスの要素がテストに合格する場合は true。それ以外の場合は false。 + 条件を満たしているかどうかをテストする要素を含むシーケンス。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + ジェネリックの をジェネリックの に変換します。 + 入力シーケンスを表す + 変換するシーケンス。 + + の要素の型。 + + は null なので、 + + + + に変換します。 + 入力シーケンスを表す + 変換するシーケンス。 + + に対して を実装していません。 + + は null なので、 + + + + 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる 値のシーケンス。 + + は null なので、 + + に要素が含まれていません。 + + + + 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる 値のシーケンス。 + + は null なので、 + + に要素が含まれていません。 + + + + 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる 値のシーケンス。 + + は null なので、 + + に要素が含まれていません。 + + + + 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる 値のシーケンス。 + + は null なので、 + + に要素が含まれていません。 + + + null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。ソース シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。ソース シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。ソース シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。ソース シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。ソース シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + + 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる 値のシーケンス。 + + は null なので、 + + に要素が含まれていません。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値の計算に使用される値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + に要素が含まれていません。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + に要素が含まれていません。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + に要素が含まれていません。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + に要素が含まれていません。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 シーケンスが空か null 値のみを含む場合は null。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの平均値を計算します。 + 値のシーケンスの平均値。 + 平均値計算の対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + に要素が含まれていません。 + + + + の要素を、指定した型に変換します。 + 指定した型に変換されたソース シーケンスの各要素が格納されている + 変換する要素が格納されている 。 + + の要素の変換後の型。 + + は null なので、 + シーケンスの要素を 型にキャストできません。 + + + 2 つのシーケンスを連結します。 + 2 つの入力シーケンスの連結された要素が格納されている + 連結する最初のシーケンス。 + 最初のシーケンスに連結するシーケンス。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 既定の等値比較子を使用して、指定した要素がシーケンスに含まれているかどうかを判断します。 + 指定した値を持つ要素が入力シーケンスに含まれている場合は true。それ以外の場合は false。 + + の検索対象となる 。 + シーケンス内で検索するオブジェクト。 + + の要素の型。 + + は null なので、 + + + 指定した を使用して、指定した要素がシーケンスに含まれているかどうかを判断します。 + 指定した値を持つ要素が入力シーケンスに含まれている場合は true。それ以外の場合は false。 + + の検索対象となる 。 + シーケンス内で検索するオブジェクト。 + 値を比較する 。 + + の要素の型。 + + は null なので、 + + + シーケンス内の要素数を返します。 + 入力シーケンス内の要素数。 + カウントする要素が格納されている 。 + + の要素の型。 + + は null なので、 + + 内の要素数が を超えています。 + + + 指定したシーケンス内の、条件を満たす要素の数を返します。 + 述語関数の条件を満たす、シーケンス内の要素数。 + カウントする要素が格納されている 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + 内の要素数が を超えています。 + + + 指定したシーケンスの要素を返します。シーケンスが空の場合はシングルトン コレクションにある型パラメーターの既定値を返します。 + + が空の場合は default() が格納されている 。それ以外の場合は + 空の場合に、既定値を返す 。 + + の要素の型。 + + は null なので、 + + + 指定されたシーケンスの要素を返します。シーケンスが空の場合はシングルトン コレクションにある型パラメーターの既定値を返します。 + + が空の場合は が格納されている 。それ以外の場合は + 空の場合に、指定された値を返す 。 + シーケンスが空の場合に返す値。 + + の要素の型。 + + は null なので、 + + + 既定の等値比較子を使用して値を比較することにより、シーケンスから一意の要素を返します。 + + の一意の要素が格納される + 重複を削除する対象の 。 + + の要素の型。 + + は null なので、 + + + 指定された を使用して値を比較することにより、シーケンスから一意の要素を返します。 + + の一意の要素が格納される + 重複を削除する対象の 。 + 値を比較する 。 + + の要素の型。 + + または が null です。 + + + シーケンス内の指定されたインデックス位置にある要素を返します。 + + 内の指定した位置にある要素。 + 返される要素が含まれる 。 + 取得する要素の、0 から始まるインデックス。 + + の要素の型。 + + は null なので、 + + が 0 未満です。 + + + シーケンス内の指定されたインデックス位置にある要素を返します。インデックスが範囲外の場合は既定値を返します。 + + の範囲外の場合は default()。それ以外の場合は で指定された位置にある要素。 + 返される要素が含まれる 。 + 取得する要素の、0 から始まるインデックス。 + + の要素の型。 + + は null なので、 + + + 既定の等値比較子を使用して値を比較することにより、2 つのシーケンスの差集合を生成します。 + 2 つのシーケンスの差集合が格納されている + + には含まれていないが、返される要素を含む 。 + 最初のシーケンスにも含まれているが、返されたシーケンスには出現しない要素を含む 。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 指定された を使用して値を比較することにより、2 つのシーケンスの差集合を生成します。 + 2 つのシーケンスの差集合が格納されている + + には含まれていないが、返される要素を含む 。 + 最初のシーケンスにも含まれているが、返されたシーケンスには出現しない要素を含む 。 + 値を比較する 。 + 入力シーケンスの要素の型。 + + または が null です。 + + + シーケンスの最初の要素を返します。 + + の最初の要素。 + 最初の要素を返す 。 + + の要素の型。 + + は null なので、 + ソース シーケンスが空です。 + + + 指定された条件を満たす、シーケンスの最初の要素を返します。 + + でテストに合格する、 の最初の要素。 + 返される要素が含まれる 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + の条件を満たす要素がありません。またはソース シーケンスが空です。 + + + シーケンスの最初の要素を返します。シーケンスに要素が含まれていない場合は既定値を返します。 + + が空の場合は default()。それ以外の場合は の最初の要素。 + 最初の要素を返す 。 + + の要素の型。 + + は null なので、 + + + 指定された条件を満たす、シーケンスの最初の要素を返します。このような要素が見つからない場合は既定値を返します。 + + が空の場合または で指定されたテストに合格する要素がない場合は default()。それ以外の場合は、 で指定されたテストに合格する、 の最初の要素。 + 返される要素が含まれる 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化します。 + C# では IQueryable<IGrouping<TKey, TSource>>、Visual Basic では IQueryable(Of IGrouping(Of TKey, TSource))。ここでは、各 オブジェクトに、オブジェクトのシーケンス、およびキーが格納されています。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、指定された比較子を使用してキーを比較します。 + C# では IQueryable<IGrouping<TKey, TSource>>、Visual Basic では IQueryable(Of IGrouping(Of TKey, TSource))。ここでは、各 オブジェクトに、オブジェクトのシーケンス、およびキーが格納されています。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + キーを比較する 。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + 、または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、指定された関数を使用して各グループの要素を射影します。 + C# では IQueryable<IGrouping<TKey, TElement>>、Visual Basic では IQueryable(Of IGrouping(Of TKey, TElement))。ここでは、各 に、 型のオブジェクトのシーケンス、およびキーが格納されています。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + ソースの各要素を の要素に割り当てる関数。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + の要素の型。 + + 、または が null です。 + + + 指定された関数を使用して、シーケンスの要素をグループ化し、各グループの要素を射影します。キー値の比較には、指定された比較子を使用します。 + C# では IQueryable<IGrouping<TKey, TElement>>、Visual Basic では IQueryable(Of IGrouping(Of TKey, TElement))。ここでは、各 に、 型のオブジェクトのシーケンス、およびキーが格納されています。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + ソースの各要素を の要素に割り当てる関数。 + キーを比較する 。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + の要素の型。 + + 、または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、各グループとそのキーから結果値を作成します。各グループの要素は、指定された関数を使用して射影されます。 + + の型引数を持つ T:System.Linq.IQueryable`1。各要素は、グループとそのキーの射影を表します。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + ソースの各要素を の要素に割り当てる関数。 + 各グループから結果値を作成する関数。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + の要素の型。 + + によって返される結果値の型。 + + 、または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、各グループとそのキーから結果値を作成します。キーの比較には、指定された比較子を使用し、各グループの要素の射影には、指定された関数を使用します。 + + の型引数を持つ T:System.Linq.IQueryable`1。各要素は、グループとそのキーの射影を表します。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + ソースの各要素を の要素に割り当てる関数。 + 各グループから結果値を作成する関数。 + キーを比較する 。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + の要素の型。 + + によって返される結果値の型。 + + 、または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、各グループとそのキーから結果値を作成します。 + + の型引数を持つ T:System.Linq.IQueryable`1。各要素は、グループとそのキーの射影を表します。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + 各グループから結果値を作成する関数。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + によって返される結果値の型。 + + 、または が null です。 + + + 指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、各グループとそのキーから結果値を作成します。キーの比較には、指定された比較子を使用します。 + + の型引数を持つ T:System.Linq.IQueryable`1。各要素は、グループとそのキーの射影を表します。 + グループ化する要素を含む 。 + 各要素のキーを抽出する関数。 + 各グループから結果値を作成する関数。 + キーを比較する 。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + によって返される結果値の型。 + + 、または が null です。 + + + キーが等しいかどうかに基づいて 2 つのシーケンスの要素を相互に関連付け、その結果をグループ化します。キーの比較には既定の等値比較子が使用されます。 + 2 つのシーケンスに対してグループ化結合を実行して取得した 型の要素が格納されている + 結合する最初のシーケンス。 + 最初のシーケンスに結合するシーケンス。 + 最初のシーケンスの各要素から結合キーを抽出する関数。 + 2 番目のシーケンスの各要素から結合キーを抽出する関数。 + 最初のシーケンスの要素と、2 番目のシーケンスの一致する要素のコレクションから結果の要素を作成する関数。 + 最初のシーケンスの要素の型。 + 2 番目のシーケンスの要素の型。 + キー セレクター関数によって返されるキーの型。 + 結果の要素の型。 + + 、または が null です。 + + + キーが等しいかどうかに基づいて 2 つのシーケンスの要素を相互に関連付け、その結果をグループ化します。指定された を使用してキーを比較します。 + 2 つのシーケンスに対してグループ化結合を実行して取得した 型の要素が格納されている + 結合する最初のシーケンス。 + 最初のシーケンスに結合するシーケンス。 + 最初のシーケンスの各要素から結合キーを抽出する関数。 + 2 番目のシーケンスの各要素から結合キーを抽出する関数。 + 最初のシーケンスの要素と、2 番目のシーケンスの一致する要素のコレクションから結果の要素を作成する関数。 + キーをハッシュして比較する比較子。 + 最初のシーケンスの要素の型。 + 2 番目のシーケンスの要素の型。 + キー セレクター関数によって返されるキーの型。 + 結果の要素の型。 + + 、または が null です。 + + + 既定の等値比較子を使用して値を比較することにより、2 つのシーケンスの積集合を生成します。 + 2 つのシーケンスの積集合を含むシーケンス。 + + にも含まれる、返される一意の要素を含むシーケンス。 + 最初のシーケンスにも含まれる、返される一意の要素を含むシーケンス。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 指定された を使用して値を比較することにより、2 つのシーケンスの積集合を生成します。 + 2 つのシーケンスの積集合を含む + + にも含まれる、返される一意の要素を含む 。 + 最初のシーケンスにも含まれる、返される一意の要素を含む 。 + 値を比較する 。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 一致するキーに基づいて 2 つのシーケンスの要素を相互に関連付けます。キーの比較には既定の等値比較子が使用されます。 + 2 つのシーケンスに対して内部結合を実行して取得した 型の要素が格納されている + 結合する最初のシーケンス。 + 最初のシーケンスに結合するシーケンス。 + 最初のシーケンスの各要素から結合キーを抽出する関数。 + 2 番目のシーケンスの各要素から結合キーを抽出する関数。 + 一致する 2 つの要素から結果の要素を作成する関数。 + 最初のシーケンスの要素の型。 + 2 番目のシーケンスの要素の型。 + キー セレクター関数によって返されるキーの型。 + 結果の要素の型。 + + 、または が null です。 + + + 一致するキーに基づいて 2 つのシーケンスの要素を相互に関連付けます。指定された を使用してキーを比較します。 + 2 つのシーケンスに対して内部結合を実行して取得した 型の要素が格納されている + 結合する最初のシーケンス。 + 最初のシーケンスに結合するシーケンス。 + 最初のシーケンスの各要素から結合キーを抽出する関数。 + 2 番目のシーケンスの各要素から結合キーを抽出する関数。 + 一致する 2 つの要素から結果の要素を作成する関数。 + キーをハッシュして比較する 。 + 最初のシーケンスの要素の型。 + 2 番目のシーケンスの要素の型。 + キー セレクター関数によって返されるキーの型。 + 結果の要素の型。 + + 、または が null です。 + + + シーケンスの最後の要素を返します。 + + の最後の位置にある値。 + 最後の要素を返す 。 + + の要素の型。 + + は null なので、 + ソース シーケンスが空です。 + + + 指定された条件を満たす、シーケンスの最後の要素を返します。 + + で指定されたテストに合格する、 の最後の要素。 + 返される要素が含まれる 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + の条件を満たす要素がありません。またはソース シーケンスが空です。 + + + シーケンスの最後の要素を返します。シーケンスに要素が含まれていない場合は既定値を返します。 + + が空の場合は default ()。それ以外の場合は の最後の要素。 + 最後の要素を返す 。 + + の要素の型。 + + は null なので、 + + + 条件を満たす、シーケンスの最後の要素を返します。このような要素が見つからない場合は既定値を返します。 + + が空の場合、または述語関数でテストに合格する要素がない場合は default ()。それ以外の場合は、述語関数でテストに合格する、 の最後の要素。 + 返される要素が含まれる 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + シーケンス内の要素の合計数を表す を返します。 + + にある要素の数。 + カウントする要素が格納されている 。 + + の要素の型。 + + は null なので、 + 要素数が を超えています。 + + + 条件を満たす、シーケンス内の要素の数を表す を返します。 + 述語関数の条件を満たす、 の要素数。 + カウントする要素が格納されている 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + 一致する要素数が を超えています。 + + + ジェネリックの にある最大値を返します。 + シーケンスの最大値。 + 最大値を確認する対象となる値のシーケンス。 + + の要素の型。 + + は null なので、 + + + ジェネリックの の各要素に対して射影関数を呼び出し、結果の最大値を返します。 + シーケンスの最大値。 + 最大値を確認する対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + で表された関数によって返される値の型。 + + または が null です。 + + + ジェネリックの にある最小値を返します。 + シーケンスの最小値。 + 最小値を確認する対象となる値のシーケンス。 + + の要素の型。 + + は null なので、 + + + ジェネリックの の各要素に対して射影関数を呼び出し、結果の最小値を返します。 + シーケンスの最小値。 + 最小値を確認する対象となる値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + で表された関数によって返される値の型。 + + または が null です。 + + + 指定された型に基づいて の要素をフィルター処理します。 + + 型を持つ、 の要素を含むコレクション。 + フィルター処理する要素を含む 。 + シーケンスの要素をフィルター処理する型。 + + は null なので、 + + + シーケンスの要素をキーに従って昇順に並べ替えます。 + 要素がキーに従って並べ替えられている + 順序付ける値のシーケンス。 + 要素からキーを抽出する関数。 + + の要素の型。 + + で表される関数によって返されるキーの型。 + + または が null です。 + + + 指定された比較子を使用してシーケンスの要素を昇順に並べ替えます。 + 要素がキーに従って並べ替えられている + 順序付ける値のシーケンス。 + 要素からキーを抽出する関数。 + キーを比較する 。 + + の要素の型。 + + で表される関数によって返されるキーの型。 + + 、または が null です。 + + + シーケンスの要素をキーに従って降順に並べ替えます。 + 要素がキーに従って降順に並べ替えられている + 順序付ける値のシーケンス。 + 要素からキーを抽出する関数。 + + の要素の型。 + + で表される関数によって返されるキーの型。 + + または が null です。 + + + 指定された比較子を使用してシーケンスの要素を降順に並べ替えます。 + 要素がキーに従って降順に並べ替えられている + 順序付ける値のシーケンス。 + 要素からキーを抽出する関数。 + キーを比較する 。 + + の要素の型。 + + で表される関数によって返されるキーの型。 + + 、または が null です。 + + + シーケンスの要素の順序を反転させます。 + 要素が入力シーケンスの要素に逆順で対応している + 反転させる値のシーケンス。 + + の要素の型。 + + は null なので、 + + + シーケンスの各要素を新しいフォームに射影します。 + + の各要素に対して射影関数を呼び出した結果として得られる要素を含む + 射影する値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + で表された関数によって返される値の型。 + + または が null です。 + + + 要素のインデックスを組み込むことにより、シーケンスの各要素を新しいフォームに射影します。 + + の各要素に対して射影関数を呼び出した結果として得られる要素を含む + 射影する値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + で表された関数によって返される値の型。 + + または が null です。 + + + シーケンスの各要素を に射影し、その各要素で結果のセレクター関数を呼び出します。各中間シーケンスの結果として得られる値は、1 つの 1 次元シーケンスに結合され、返されます。 + + の各要素で一対多の射影関数 を呼び出し、こうしたシーケンスの各要素とそれに対応する 要素を結果の要素に割り当てた結果として得られる要素を含む + 射影する値のシーケンス。 + 入力シーケンスの各要素に適用する射影関数。 + 各中間シーケンスの各要素に適用する射影関数。 + + の要素の型。 + + で表される関数によって収集される中間要素の型。 + 結果のシーケンスの要素の型。 + + 、または が null です。 + + + シーケンスの各要素を に射影し、結果のシーケンスを 1 つのシーケンスに結合します。 + 入力シーケンスの各要素で一対多の射影関数を呼び出した結果として得られる要素を含む + 射影する値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + で表される関数によって返されるシーケンスの要素の型。 + + または が null です。 + + + シーケンスの各要素を、それを生成したソース要素のインデックスを組み込む に射影します。結果のセレクター関数は、各中間シーケンスの各要素に対して呼び出されます。結果値は 1 つの 1 次元シーケンスに結合され、返されます。 + + の各要素で一対多の射影関数 を呼び出し、こうしたシーケンスの各要素とそれに対応する 要素を結果の要素に割り当てた結果として得られる要素を含む + 射影する値のシーケンス。 + 入力シーケンスの各要素に適用する射影関数。この関数の 2 つ目のパラメーターは、ソース要素のインデックスを表します。 + 各中間シーケンスの各要素に適用する射影関数。 + + の要素の型。 + + で表される関数によって収集される中間要素の型。 + 結果のシーケンスの要素の型。 + + 、または が null です。 + + + シーケンスの各要素を に射影し、結果のシーケンスを 1 つのシーケンスに結合します。各ソース要素のインデックスは、その要素の射影されたフォームで使用されます。 + 入力シーケンスの各要素で一対多の射影関数を呼び出した結果として得られる要素を含む + 射影する値のシーケンス。 + 各要素に適用する射影関数。この関数の 2 つ目のパラメーターは、ソース要素のインデックスを表します。 + + の要素の型。 + + で表される関数によって返されるシーケンスの要素の型。 + + または が null です。 + + + 既定の等値比較子を使用して要素を比較することで、2 つのシーケンスが等しいかどうかを判断します。 + 2 つのソース シーケンスが同じ長さで、それらに対応する要素の比較が等しい場合は true。それ以外の場合は false。 + + の要素と比較する要素が含まれている 。 + 最初のシーケンスの要素と比較する要素が含まれている 。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 指定された を使用して要素を比較することで、2 つのシーケンスが等しいかどうかを判断します。 + 2 つのソース シーケンスが同じ長さで、それらに対応する要素の比較が等しい場合は true。それ以外の場合は false。 + + の要素と比較する要素が含まれている 。 + 最初のシーケンスの要素と比較する要素が含まれている 。 + 要素の比較に使用する 。 + 入力シーケンスの要素の型。 + + または が null です。 + + + シーケンスの唯一の要素を返します。シーケンス内の要素が 1 つだけではない場合は、例外をスローします。 + 入力シーケンスの 1 つの要素。 + 1 つの要素を返す 。 + + の要素の型。 + + は null なので、 + + には複数の要素があります。 + + + 指定された条件を満たす、シーケンスの唯一の要素を返します。そのような要素が複数存在する場合は、例外をスローします。 + + の条件を満たす、入力シーケンスの 1 つの要素。 + 1 つの要素を返す 。 + 要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + の条件を満たす要素がありません。または の条件を満たす要素が複数あります。またはソース シーケンスが空です。 + + + シーケンスの唯一の要素を返します。シーケンスが空の場合、既定値を返します。シーケンス内に要素が複数ある場合、このメソッドは例外をスローします。 + 入力シーケンスの 1 つの要素。シーケンスに要素が含まれない場合は default ()。 + 1 つの要素を返す 。 + + の要素の型。 + + は null なので、 + + には複数の要素があります。 + + + 指定された条件を満たす、シーケンスの唯一の要素を返します。そのような要素が存在しない場合、既定値を返します。複数の要素が条件を満たす場合、このメソッドは例外をスローします。 + + の条件を満たす、入力シーケンスの 1 つの要素。そのような要素が見つからない場合は default ()。 + 1 つの要素を返す 。 + 要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + の条件を満たす要素が複数あります。 + + + シーケンス内の指定された数の要素をバイパスし、残りの要素を返します。 + 入力シーケンスで指定されたインデックスの後に出現する要素を含む + 返される要素が含まれる 。 + 残りの要素を返す前にスキップする要素の数。 + + の要素の型。 + + は null なので、 + + + 指定された条件が満たされる限り、シーケンスの要素をバイパスした後、残りの要素を返します。 + + で指定されたテストに合格しない連続する最初の要素から の要素を含む + 返される要素が含まれる 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + 指定された条件が満たされる限り、シーケンスの要素をバイパスした後、残りの要素を返します。要素のインデックスは、述語関数のロジックで使用されます。 + + で指定されたテストに合格しない連続する最初の要素から の要素を含む + 返される要素が含まれる 。 + 各要素が条件に当てはまるかどうかをテストする関数。この関数の 2 つ目のパラメーターは、ソース要素のインデックスを表します。 + + の要素の型。 + + または が null です。 + + + + 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる 値のシーケンス。 + + は null なので、 + 合計が を超えています。 + + + + 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる 値のシーケンス。 + + は null なので、 + + + + 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる 値のシーケンス。 + + は null なので、 + 合計が を超えています。 + + + + 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる 値のシーケンス。 + + は null なので、 + 合計が を超えています。 + + + null 許容の 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる null 許容の 値のシーケンス。 + + は null なので、 + 合計が を超えています。 + + + null 許容の 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + null 許容の 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる null 許容の 値のシーケンス。 + + は null なので、 + 合計が を超えています。 + + + null 許容の 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる null 許容の 値のシーケンス。 + + は null なので、 + 合計が を超えています。 + + + null 許容の 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる null 許容の 値のシーケンス。 + + は null なので、 + + + + 値のシーケンスの合計を計算します。 + シーケンスの値の合計。 + 合計を計算する対象となる 値のシーケンス。 + + は null なので、 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + 合計が を超えています。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + 合計が を超えています。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + 合計が を超えています。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + 合計が を超えています。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + 合計が を超えています。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + 合計が を超えています。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する、null 許容の 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + 入力シーケンスの各要素に対して射影関数を呼び出して取得する 値のシーケンスの合計を計算します。 + 射影された値の合計。 + + 型の値のシーケンス。 + 各要素に適用する射影関数。 + + の要素の型。 + + または が null です。 + + + シーケンスの先頭から、指定された数の連続する要素を返します。 + + の先頭から、指定された数の要素を含む + 要素を返すシーケンス。 + 返す要素数。 + + の要素の型。 + + は null なので、 + + + 指定された条件が満たされる限り、シーケンスから要素を返します。 + + で指定されたテストに合格しなくなった要素の前に出現する、入力シーケンスの要素を含む + 要素を返すシーケンス。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + 指定された条件が満たされる限り、シーケンスから要素を返します。要素のインデックスは、述語関数のロジックで使用されます。 + + で指定されたテストに合格しなくなった要素の前に出現する、入力シーケンスの要素を含む + 要素を返すシーケンス。 + 各要素が条件を満たしているかどうかをテストする関数。この関数の 2 つ目のパラメーターは、ソース シーケンスの要素のインデックスを表します。 + + の要素の型。 + + または が null です。 + + + キーに従って、シーケンス内の後続の要素を昇順で配置します。 + 要素がキーに従って並べ替えられている + 並べ替える要素を格納している 。 + 各要素からキーを抽出する関数。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + または が null です。 + + + 指定された比較子を使用して、シーケンス内の後続の要素を昇順で配置します。 + 要素がキーに従って並べ替えられている + 並べ替える要素を格納している 。 + 各要素からキーを抽出する関数。 + キーを比較する 。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + 、または が null です。 + + + キーに従って、シーケンス内の後続の要素を降順で配置します。 + 要素がキーに従って降順に並べ替えられている + 並べ替える要素を格納している 。 + 各要素からキーを抽出する関数。 + + の要素の型。 + + で表された関数によって返されるキーの型。 + + または が null です。 + + + 指定された比較子を使用して、シーケンス内の後続の要素を降順で配置します。 + 要素がキーに従って降順に並べ替えられているコレクション。 + 並べ替える要素を格納している 。 + 各要素からキーを抽出する関数。 + キーを比較する 。 + + の要素の型。 + + 関数によって返されるキーの型。 + + 、または が null です。 + + + 既定の等値比較子を使用して、2 つのシーケンスの和集合を生成します。 + 2 つの入力シーケンスの要素 (重複する要素は除く) を格納している + 和集合演算の最初のセットを形成する各要素を含むシーケンス。 + 和集合演算の 2 番目のセットを形成する各要素を含むシーケンス。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 指定された を使用して 2 つのシーケンスの和集合を生成します。 + 2 つの入力シーケンスの要素 (重複する要素は除く) を格納している + 和集合演算の最初のセットを形成する各要素を含むシーケンス。 + 和集合演算の 2 番目のセットを形成する各要素を含むシーケンス。 + 値を比較する 。 + 入力シーケンスの要素の型。 + + または が null です。 + + + 述語に基づいて値のシーケンスをフィルター処理します。 + + で指定された条件を満たす、入力シーケンスの要素を含む + フィルター処理する 。 + 各要素が条件を満たしているかどうかをテストする関数。 + + の要素の型。 + + または が null です。 + + + 述語に基づいて値のシーケンスをフィルター処理します。各要素のインデックスは、述語関数のロジックで使用されます。 + + で指定された条件を満たす、入力シーケンスの要素を含む + フィルター処理する 。 + 各要素が条件を満たしているかどうかをテストする関数。この関数の 2 つ目のパラメーターは、ソース シーケンスの要素のインデックスを表します。 + + の要素の型。 + + または が null です。 + + + 指定された述語関数を使用して 2 つのシーケンスをマージします。 + 2 つの入力シーケンスのマージされた要素が格納されている + マージする 1 番目のシーケンス。 + マージする 2 番目のシーケンス。 + 2 つのシーケンスの要素をマージする方法を指定する関数。 + 1 番目の入力シーケンスの要素の型。 + 2 番目の入力シーケンスの要素の型。 + 結果のシーケンスの要素の型。 + + または が null です。 + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/ko/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/ko/System.Linq.Queryable.xml new file mode 100644 index 0000000..2cb118a --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/ko/System.Linq.Queryable.xml @@ -0,0 +1,1466 @@ + + + + System.Linq.Queryable + + + + 식 트리를 나타내고 식 트리를 다시 작성한 후에 실행하는 기능을 제공합니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + + + 식 트리를 나타내고 식 트리를 다시 작성한 후에 실행하는 기능을 제공합니다. + 식 트리를 실행한 결과 값의 데이터 형식입니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + 새 인스턴스에 연결할 식 트리입니다. + + + + 데이터 소스로 을 나타냅니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + 데이터 소스로 컬렉션을 나타냅니다. + 컬렉션의 데이터 형식입니다. + + + + 클래스의 새 인스턴스를 초기화하고 컬렉션에 연결합니다. + 새 인스턴스에 연결할 컬렉션입니다. + + + + 클래스의 새 인스턴스를 초기화하고 인스턴스를 식 트리에 연결합니다. + 새 인스턴스에 연결할 식 트리입니다. + + + 연결된 컬렉션을 반복하거나, 값이 null인 경우 데이터 소스의 쿼리로 연결된 식 트리를 다시 작성 및 실행하여 얻은 결과 컬렉션을 반복할 수 있는 열거자를 반환합니다. + 연결된 데이터 소스를 반복하는 데 사용할 수 있는 열거자입니다. + + + 연결된 컬렉션을 반복하거나, 값이 null인 경우 데이터 소스의 쿼리로 연결된 식 트리를 다시 작성 및 실행하여 얻은 결과 컬렉션을 반복할 수 있는 열거자를 반환합니다. + 연결된 데이터 소스를 반복하는 데 사용할 수 있는 열거자입니다. + + + 이 인스턴스가 나타내는 컬렉션의 데이터 형식을 가져옵니다. + 이 인스턴스가 나타내는 컬렉션의 데이터 형식입니다. + + + 이 인스턴스에 연결되거나 이 인스턴스를 나타내는 식 트리를 가져옵니다. + 이 인스턴스에 연결되거나 이 인스턴스를 나타내는 식 트리입니다. + + + 이 인스턴스에 연결된 쿼리 공급자를 가져옵니다. + 이 인스턴스에 연결된 쿼리 공급자입니다. + + + 개체를 생성하고 데이터의 컬렉션을 나타내는 지정된 식 트리에 연결합니다. + + 에 연결된 EnumerableQuery 개체입니다. + 실행할 식 트리입니다. + + 이 나타내는 컬렉션의 데이터 형식입니다. + + + 개체를 생성하고 데이터의 컬렉션을 나타내는 지정된 식 트리에 연결합니다. + + 에 연결된 개체입니다. + 데이터의 컬렉션을 나타내는 식 트리입니다. + + + + 메서드를 통해 쿼리할 수 없는 열거 가능한 데이터 소스의 메서드 대신 메서드를 호출하려면 식을 다시 작성한 후에 실행합니다. + + 을 실행한 결과 값입니다. + 실행할 식 트리입니다. + + 이 나타내는 컬렉션의 데이터 형식입니다. + + + + 메서드를 통해 쿼리할 수 없는 열거 가능한 데이터 소스의 메서드 대신 메서드를 호출하려면 식을 다시 작성한 후에 실행합니다. + + 을 실행한 결과 값입니다. + 실행할 식 트리입니다. + + + 열거 가능 컬렉션 또는 null인 경우 이 인스턴스에 연결된 식 트리의 텍스트 표현을 반환합니다. + 열거 가능 컬렉션 또는 null인 경우 이 인스턴스에 연결된 식 트리의 텍스트 표현입니다. + + + + 을 구현하는 데이터 구조체를 쿼리하기 위한 static(Visual Basic의 경우 Shared) 메서드 집합을 제공합니다. + + + 시퀀스에 누적기 함수를 적용합니다. + 최종 누적기 값입니다. + 집계할 시퀀스입니다. + 각 요소에 적용할 누적기 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 에 요소가 없는 경우 + + + 시퀀스에 누적기 함수를 적용합니다.지정된 시드 값은 초기 누적기 값으로 사용됩니다. + 최종 누적기 값입니다. + 집계할 시퀀스입니다. + 초기 누적기 값입니다. + 각 요소에 대해 호출할 누적기 함수입니다. + + 요소의 형식입니다. + 누적기 값의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스에 누적기 함수를 적용합니다.지정된 시드 값은 초기 누적기 값으로 사용되고 지정된 함수는 결과 값을 선택하는 데 사용됩니다. + 변환된 최종 누적기 값입니다. + 집계할 시퀀스입니다. + 초기 누적기 값입니다. + 각 요소에 대해 호출할 누적기 함수입니다. + 최종 누적기 값을 결과 값으로 변환하는 함수입니다. + + 요소의 형식입니다. + 누적기 값의 형식입니다. + 결과 값의 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 모든 요소가 특정 조건에 맞는지 확인합니다. + 소스 시퀀스의 모든 요소가 지정된 조건자의 테스트를 통과하거나 시퀀스가 비어 있으면 true이고, 그렇지 않으면 false입니다. + 해당 요소를 조건에 대해 테스트할 시퀀스입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스에 요소가 하나라도 있는지 확인합니다. + 소스 시퀀스에 요소가 하나라도 있으면 true이고, 그렇지 않으면 false입니다. + 비어 있는지 확인할 시퀀스입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 시퀀스에 특정 조건에 맞는 요소가 있는지 확인합니다. + 지정된 조건자의 테스트를 통과하는 요소가 소스 시퀀스에 하나라도 있으면 true이고, 그렇지 않으면 false입니다. + 해당 요소를 조건에 대해 테스트할 시퀀스입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 제네릭 을 제네릭 로 변환합니다. + 입력 시퀀스를 나타내는 입니다. + 변환할 시퀀스입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + + 로 변환합니다. + 입력 시퀀스를 나타내는 입니다. + 변환할 시퀀스입니다. + + 가 일부 에 대해 을 구현하지 않는 경우 + + 가 null입니다. + + + + 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + 에 요소가 없는 경우 + + + + 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + 에 요소가 없는 경우 + + + + 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + 에 요소가 없는 경우 + + + + 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + 에 요소가 없는 경우 + + + nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 소스 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 소스 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 소스 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 소스 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 소스 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + + 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + 에 요소가 없는 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산하는 데 사용되는 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 에 요소가 없는 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 에 요소가 없는 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 에 요소가 없는 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 에 요소가 없는 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균이거나, 시퀀스가 비어 있거나 null 값만 들어 있으면 null입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 평균을 계산합니다. + 값 시퀀스의 평균입니다. + 평균을 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 에 요소가 없는 경우 + + + + 의 요소를 지정된 형식으로 변환합니다. + 지정된 형식으로 변환된 소스 시퀀스의 각 요소가 들어 있는 입니다. + 변환할 요소가 들어 있는 입니다. + + 의 요소를 변환할 형식입니다. + + 가 null입니다. + 시퀀스의 요소를 형식으로 캐스팅할 수 없는 경우 + + + 두 시퀀스를 연결합니다. + 두 입력 시퀀스의 연결된 요소가 들어 있는 입니다. + 연결할 첫 번째 시퀀스입니다. + 첫 번째 시퀀스에 연결할 시퀀스입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 기본 같음 비교자를 사용하여 시퀀스에 지정된 요소가 들어 있는지 확인합니다. + 입력 시퀀스에 지정된 값을 갖는 요소가 들어 있으면 true이고, 그렇지 않으면 false입니다. + + 을 찾을 입니다. + 시퀀스에서 찾을 개체입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 지정된 를 사용하여 시퀀스에 지정된 요소가 들어 있는지 확인합니다. + 입력 시퀀스에 지정된 값을 갖는 요소가 들어 있으면 true이고, 그렇지 않으면 false입니다. + + 을 찾을 입니다. + 시퀀스에서 찾을 개체입니다. + 값을 비교할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 시퀀스의 요소 수를 반환합니다. + 입력 시퀀스의 요소 수입니다. + 개수를 셀 요소가 들어 있는 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + 의 요소 수가 보다 큰 경우 + + + 지정된 시퀀스에서 특정 조건에 맞는 요소 수를 반환합니다. + 시퀀스에서 조건자 함수의 조건에 맞는 요소 수입니다. + 개수를 셀 요소가 들어 있는 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 의 요소 수가 보다 큰 경우 + + + 지정된 시퀀스의 요소를 반환하거나, 시퀀스가 비어 있으면 형식 매개 변수의 기본값을 반환합니다. + + 가 비어 있으면 default()가 들어 있는 이고, 그렇지 않으면 입니다. + 비어 있는 경우 기본값을 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 지정된 시퀀스의 요소를 반환하거나, 시퀀스가 비어 있으면 singleton 컬렉션의 지정된 값을 반환합니다. + + 가 비어 있으면 가 들어 있는 이고, 그렇지 않으면 입니다. + 비어 있는 경우 지정된 값을 반환할 입니다. + 시퀀스가 비어 있는 경우에 반환할 값입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 기본 같음 비교자로 값을 비교하여 시퀀스에서 고유 요소를 반환합니다. + + 의 고유 요소가 들어 있는 입니다. + 중복을 제거할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 지정된 로 값을 비교하여 시퀀스에서 고유 요소를 반환합니다. + + 의 고유 요소가 들어 있는 입니다. + 중복을 제거할 입니다. + 값을 비교할 입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스에서 지정된 인덱스의 요소를 반환합니다. + + 에서 지정된 위치의 요소입니다. + 요소를 반환할 입니다. + 검색할 요소의 인덱스(0부터 시작)입니다. + + 요소의 형식입니다. + + 가 null입니다. + + 가 0보다 작은 경우 + + + 시퀀스에서 지정된 인덱스의 요소를 반환하거나, 인덱스가 범위를 벗어나면 기본 값을 반환합니다. + + 의 범위를 벗어나면 default()이고, 그렇지 않으면 에서 지정된 위치에 있는 요소입니다. + 요소를 반환할 입니다. + 검색할 요소의 인덱스(0부터 시작)입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 기본 같음 비교자로 값을 비교하여 두 시퀀스의 차집합을 구합니다. + 두 시퀀스의 차집합이 들어 있는 입니다. + + 에 없는 해당 요소를 반환할 입니다. + 첫 번째 시퀀스에 해당 요소가 있는 경우 반환되는 시퀀스에서 해당 요소를 제외할 입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 로 값을 비교하여 두 시퀀스의 차집합을 구합니다. + 두 시퀀스의 차집합이 들어 있는 입니다. + + 에 없는 해당 요소를 반환할 입니다. + 첫 번째 시퀀스에 해당 요소가 있는 경우 반환되는 시퀀스에서 해당 요소를 제외할 입니다. + 값을 비교할 입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 첫 번째 요소를 반환합니다. + + 의 첫 번째 요소입니다. + 첫 번째 요소를 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + 소스 시퀀스가 비어 있는 경우 + + + 시퀀스에서 지정된 조건에 맞는 첫 번째 요소를 반환합니다. + + 에서 의 테스트를 통과하는 첫 번째 요소입니다. + 요소를 반환할 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 의 조건에 맞는 요소가 없는 경우또는소스 시퀀스가 비어 있는 경우 + + + 시퀀스의 첫 번째 요소를 반환하거나, 시퀀스에 요소가 없으면 기본값을 반환합니다. + + 가 비어 있으면 default()이고, 그렇지 않으면 의 첫 번째 요소입니다. + 첫 번째 요소를 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 시퀀스에서 지정된 조건에 맞는 첫 번째 요소를 반환하거나, 이러한 요소가 없으면 기본값을 반환합니다. + + 가 비어 있거나 에 지정된 테스트를 통과하는 요소가 없으면 default()이고, 그렇지 않으면 에서 에 지정된 테스트를 통과하는 첫 번째 요소입니다. + 요소를 반환할 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 키 선택기 함수에 따라 시퀀스의 요소를 그룹화합니다. + 개체에 개체 및 키의 시퀀스가 들어 있는 IQueryable<IGrouping<TKey, TSource>>(C#의 경우) 또는 IQueryable(Of IGrouping(Of TKey, TSource))(Visual Basic의 경우)입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 또는 가 null인 경우 + + + 지정된 키 선택기 함수에 따라 지정된 비교자로 키를 비교하여 시퀀스의 요소를 그룹화합니다. + 에 개체 및 키의 시퀀스가 들어 있는 IQueryable<IGrouping<TKey, TSource>>(C#의 경우) 또는 IQueryable(Of IGrouping(Of TKey, TSource))(Visual Basic의 경우)입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + , 또는 가 null인 경우 + + + 지정된 키 선택기 함수에 따라 시퀀스의 요소를 그룹화하고 지정된 함수를 사용하여 각 그룹의 요소를 투영합니다. + 형식 개체 및 키의 시퀀스가 들어 있는 IQueryable<IGrouping<TKey, TElement>>(C#의 경우) 또는 IQueryable(Of IGrouping(Of TKey, TElement))(Visual Basic의 경우)입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 각 소스 요소를 의 요소에 매핑하는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + 에 있는 요소의 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 요소를 그룹화하고 지정된 함수를 사용하여 각 그룹의 요소를 투영합니다.키 값은 지정된 비교자를 통해 비교됩니다. + 형식 개체 및 키의 시퀀스가 들어 있는 IQueryable<IGrouping<TKey, TElement>>(C#의 경우) 또는 IQueryable(Of IGrouping(Of TKey, TElement))(Visual Basic의 경우)입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 각 소스 요소를 의 요소에 매핑하는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + 에 있는 요소의 형식입니다. + + , , 또는 가 null인 경우 + + + 지정된 키 누적기 함수에 따라 시퀀스의 요소를 그룹화하고 각 그룹의 결과 값과 해당 키를 만듭니다.각 그룹의 요소는 지정된 함수를 통해 투영됩니다. + 형식 인수가 이고 각 요소가 그룹 및 해당 키에 대한 프로젝션을 나타내는 T:System.Linq.IQueryable`1입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 각 소스 요소를 의 요소에 매핑하는 함수입니다. + 각 그룹의 결과 값을 만드는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + 에 있는 요소의 형식입니다. + + 에서 반환하는 결과 값의 형식입니다. + + , , 또는 가 null인 경우 + + + 지정된 키 누적기 함수에 따라 시퀀스의 요소를 그룹화하고 각 그룹의 결과 값과 해당 키를 만듭니다.키는 지정된 비교자를 통해 비교되고 각 그룹의 요소는 지정된 함수를 통해 투영됩니다. + 형식 인수가 이고 각 요소가 그룹 및 해당 키에 대한 프로젝션을 나타내는 T:System.Linq.IQueryable`1입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 각 소스 요소를 의 요소에 매핑하는 함수입니다. + 각 그룹의 결과 값을 만드는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + 에 있는 요소의 형식입니다. + + 에서 반환하는 결과 값의 형식입니다. + + , , , 또는 가 null인 경우 + + + 지정된 키 누적기 함수에 따라 시퀀스의 요소를 그룹화하고 각 그룹의 결과 값과 해당 키를 만듭니다. + 형식 인수가 이고 각 요소가 그룹 및 해당 키에 대한 프로젝션을 나타내는 T:System.Linq.IQueryable`1입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 각 그룹의 결과 값을 만드는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 에서 반환하는 결과 값의 형식입니다. + + , 또는 가 null인 경우 + + + 지정된 키 누적기 함수에 따라 시퀀스의 요소를 그룹화하고 각 그룹의 결과 값과 해당 키를 만듭니다.키는 지정된 비교자를 통해 비교됩니다. + 형식 인수가 이고 각 요소가 그룹 및 해당 키에 대한 프로젝션을 나타내는 T:System.Linq.IQueryable`1입니다. + 요소를 그룹화할 입니다. + 각 요소에 대해 키를 추출하는 함수입니다. + 각 그룹의 결과 값을 만드는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 에서 반환하는 결과 값의 형식입니다. + + , , 또는 가 null인 경우 + + + 키가 같은지 여부에 따라 두 시퀀스의 요소를 연관시키고 결과를 그룹화합니다.기본 같음 비교자를 사용하여 키를 비교합니다. + 두 시퀀스에 대해 그룹화 조인을 수행하여 가져온 형식 요소가 들어 있는 입니다. + 조인할 첫 번째 시퀀스입니다. + 첫 번째 시퀀스에 조인할 시퀀스입니다. + 첫 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 두 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 첫 번째 시퀀스의 요소와 두 번째 시퀀스의 일치하는 요소 컬렉션을 통해 결과 요소를 만들 함수입니다. + 첫 번째 시퀀스 요소의 형식입니다. + 두 번째 시퀀스 요소의 형식입니다. + 키 선택기 함수에서 반환하는 키의 형식입니다. + 결과 요소의 형식입니다. + + , , , 또는 가 null인 경우 + + + 키가 같은지 여부에 따라 두 시퀀스의 요소를 연관시키고 결과를 그룹화합니다.지정된 를 사용하여 키를 비교합니다. + 두 시퀀스에 대해 그룹화 조인을 수행하여 가져온 형식 요소가 들어 있는 입니다. + 조인할 첫 번째 시퀀스입니다. + 첫 번째 시퀀스에 조인할 시퀀스입니다. + 첫 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 두 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 첫 번째 시퀀스의 요소와 두 번째 시퀀스의 일치하는 요소 컬렉션을 통해 결과 요소를 만들 함수입니다. + 키를 해시하여 비교할 비교자입니다. + 첫 번째 시퀀스 요소의 형식입니다. + 두 번째 시퀀스 요소의 형식입니다. + 키 선택기 함수에서 반환하는 키의 형식입니다. + 결과 요소의 형식입니다. + + , , , 또는 가 null인 경우 + + + 기본 같음 비교자로 값을 비교하여 두 시퀀스의 교집합을 구합니다. + 두 시퀀스의 교집합이 들어 있는 시퀀스입니다. + + 에도 있는 고유 요소가 반환되는 시퀀스입니다. + 첫 번째 시퀀스에도 있는 고유 요소가 반환되는 시퀀스입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 로 값을 비교하여 두 시퀀스의 교집합을 구합니다. + 두 시퀀스의 교집합이 들어 있는 입니다. + + 에도 있는 고유 요소가 반환되는 입니다. + 첫 번째 시퀀스에도 있는 고유 요소가 반환되는 입니다. + 값을 비교할 입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 일치하는 키를 기준으로 두 시퀀스의 요소를 연관시킵니다.기본 같음 비교자를 사용하여 키를 비교합니다. + 두 시퀀스에 대해 내부 조인을 수행하여 가져온 형식 요소가 들어 있는 입니다. + 조인할 첫 번째 시퀀스입니다. + 첫 번째 시퀀스에 조인할 시퀀스입니다. + 첫 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 두 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 일치하는 두 요소를 통해 결과 요소를 만들 함수입니다. + 첫 번째 시퀀스 요소의 형식입니다. + 두 번째 시퀀스 요소의 형식입니다. + 키 선택기 함수에서 반환하는 키의 형식입니다. + 결과 요소의 형식입니다. + + , , , 또는 가 null인 경우 + + + 일치하는 키를 기준으로 두 시퀀스의 요소를 연관시킵니다.지정된 를 사용하여 키를 비교합니다. + 두 시퀀스에 대해 내부 조인을 수행하여 가져온 형식 요소가 들어 있는 입니다. + 조인할 첫 번째 시퀀스입니다. + 첫 번째 시퀀스에 조인할 시퀀스입니다. + 첫 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 두 번째 시퀀스의 각 요소에서 조인 키를 추출하는 함수입니다. + 일치하는 두 요소를 통해 결과 요소를 만들 함수입니다. + 키를 해시하여 비교할 입니다. + 첫 번째 시퀀스 요소의 형식입니다. + 두 번째 시퀀스 요소의 형식입니다. + 키 선택기 함수에서 반환하는 키의 형식입니다. + 결과 요소의 형식입니다. + + , , , 또는 가 null인 경우 + + + 시퀀스의 마지막 요소를 반환합니다. + + 에서 마지막 위치의 값입니다. + 마지막 요소를 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + 소스 시퀀스가 비어 있는 경우 + + + 시퀀스에서 지정된 조건에 맞는 마지막 요소를 반환합니다. + + 에서 에 지정된 테스트를 통과하는 마지막 요소입니다. + 요소를 반환할 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 의 조건에 맞는 요소가 없는 경우또는소스 시퀀스가 비어 있는 경우 + + + 시퀀스의 마지막 요소를 반환하거나, 시퀀스에 요소가 없으면 기본값을 반환합니다. + + 가 비어 있으면 default()이고, 그렇지 않으면 의 마지막 요소입니다. + 마지막 요소를 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 시퀀스에서 특정 조건에 맞는 마지막 요소를 반환하거나, 이러한 요소가 없으면 기본값을 반환합니다. + + 가 비어 있거나 조건자 함수의 테스트를 통과하는 요소가 없으면 default()이고, 그렇지 않으면 에서 조건자 함수의 테스트를 통과하는 마지막 요소입니다. + 요소를 반환할 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 총 요소 수를 나타내는 를 반환합니다. + + 의 요소 수입니다. + 개수를 셀 요소가 들어 있는 입니다. + + 요소의 형식입니다. + + 가 null입니다. + 요소 수가 를 초과하는 경우 + + + 시퀀스에서 특정 조건에 맞는 요소 수를 나타내는 를 반환합니다. + + 에서 조건자 함수의 조건에 맞는 요소 수입니다. + 개수를 셀 요소가 들어 있는 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 일치하는 요소 수가 를 초과하는 경우 + + + 제네릭 의 최대값을 반환합니다. + 시퀀스의 최대값입니다. + 최대값을 확인할 값의 시퀀스입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 제네릭 의 각 요소에 대해 프로젝션 함수를 호출하고 최대 결과 값을 반환합니다. + 시퀀스의 최대값입니다. + 최대값을 확인할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 값의 형식입니다. + + 또는 가 null인 경우 + + + 제네릭 의 최소값을 반환합니다. + 시퀀스의 최소값입니다. + 최소값을 확인할 값의 시퀀스입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 제네릭 의 각 요소에 대해 프로젝션 함수를 호출하고 최소 결과 값을 반환합니다. + 시퀀스의 최소값입니다. + 최소값을 확인할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 값의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 형식에 따라 의 요소를 필터링합니다. + 형식이 의 요소가 들어 있는 컬렉션입니다. + 요소를 필터링할 입니다. + 시퀀스의 요소를 필터링할 형식입니다. + + 가 null입니다. + + + 시퀀스의 요소를 키에 따라 오름차순으로 정렬합니다. + 요소가 키에 따라 정렬된 입니다. + 정렬할 값의 시퀀스입니다. + 요소에서 키를 추출하는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 또는 가 null인 경우 + + + 지정된 비교자를 사용하여 시퀀스의 요소를 오름차순으로 정렬합니다. + 요소가 키에 따라 정렬된 입니다. + 정렬할 값의 시퀀스입니다. + 요소에서 키를 추출하는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 요소를 키에 따라 내림차순으로 정렬합니다. + 요소가 키에 따라 내림차순으로 정렬된 입니다. + 정렬할 값의 시퀀스입니다. + 요소에서 키를 추출하는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 또는 가 null인 경우 + + + 지정된 비교자를 사용하여 시퀀스의 요소를 내림차순으로 정렬합니다. + 요소가 키에 따라 내림차순으로 정렬된 입니다. + 정렬할 값의 시퀀스입니다. + 요소에서 키를 추출하는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 요소 순서를 반전합니다. + 입력 시퀀스의 요소 순서를 뒤집은 입니다. + 반전할 값의 시퀀스입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 시퀀스의 각 요소를 새 폼에 투영합니다. + 해당 요소가 의 각 요소에 대해 프로젝션 함수를 호출한 결과인 입니다. + 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 값의 형식입니다. + + 또는 가 null인 경우 + + + 요소의 인덱스를 통합하여 시퀀스의 각 요소를 새 폼에 투영합니다. + 해당 요소가 의 각 요소에 대해 프로젝션 함수를 호출한 결과인 입니다. + 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 값의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 각 요소를 에 투영하고 각 해당 요소에 대해 결과 선택기 함수를 호출합니다.각 중간 시퀀스의 결과 값을 1차원 단일 시퀀스로 결합하여 반환합니다. + 해당 요소가 의 각 요소에 대해 일대다 프로젝션 함수 를 호출한 다음 이러한 시퀀스 요소와 해당 요소를 각각 결과 요소에 매핑한 결과인 입니다. + 계산할 값의 시퀀스입니다. + 입력 시퀀스의 각 요소에 적용할 프로젝션 함수입니다. + 각 중간 시퀀스의 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 가 나타내는 함수가 수집한 중간 요소의 형식입니다. + 결과 시퀀스 요소의 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 각 요소를 에 투영하고 결과 시퀀스를 단일 시퀀스로 결합합니다. + 해당 요소가 입력 시퀀스의 각 요소에 대해 일대다 프로젝션 함수를 호출한 결과인 입니다. + 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 가 나타내는 함수에서 반환되는 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 각 요소를 해당 소스 요소의 인덱스를 통합하는 에 투영합니다.각 중간 시퀀스의 각 요소에 대해 결과 선택기 함수를 호출하고 결과 값을 1차원 단일 시퀀스로 결합하여 반환합니다. + 해당 요소가 의 각 요소에 대해 일대다 프로젝션 함수 를 호출한 다음 이러한 시퀀스 요소와 해당 요소를 각각 결과 요소에 매핑한 결과인 입니다. + 계산할 값의 시퀀스입니다. + 입력 시퀀스의 각 요소에 적용할 프로젝션 함수이며, 이 함수의 두 번째 매개 변수는 소스 요소의 인덱스를 나타냅니다. + 각 중간 시퀀스의 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 가 나타내는 함수가 수집한 중간 요소의 형식입니다. + 결과 시퀀스 요소의 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 각 요소를 에 투영하고 결과 시퀀스를 단일 시퀀스로 결합합니다.각 소스 요소의 인덱스는 해당 요소의 투영된 폼에 사용됩니다. + 해당 요소가 입력 시퀀스의 각 요소에 대해 일대다 프로젝션 함수를 호출한 결과인 입니다. + 계산할 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수이며, 이 함수의 두 번째 매개 변수는 소스 요소의 인덱스를 나타냅니다. + + 요소의 형식입니다. + + 가 나타내는 함수에서 반환되는 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 기본 같음 비교자를 통해 요소를 비교하여 두 시퀀스가 서로 같은지 확인합니다. + 두 소스 시퀀스의 길이가 같고 해당 요소가 같은 것으로 비교되면 true이고, 그렇지 않으면 false입니다. + 해당 요소를 의 요소와 비교할 입니다. + 해당 요소를 첫 번째 시퀀스의 요소와 비교할 입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 를 통해 요소를 비교하여 두 시퀀스가 서로 같은지 확인합니다. + 두 소스 시퀀스의 길이가 같고 해당 요소가 같은 것으로 비교되면 true이고, 그렇지 않으면 false입니다. + 해당 요소를 의 요소와 비교할 입니다. + 해당 요소를 첫 번째 시퀀스의 요소와 비교할 입니다. + 요소를 비교하는 데 사용할 입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 유일한 요소를 반환하고, 시퀀스에 요소가 정확히 하나 들어 있지 않으면 예외를 throw합니다. + 입력 시퀀스의 단일 요소입니다. + 단일 요소를 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + 에 둘 이상의 요소가 있는 경우 + + + 시퀀스에서 지정된 조건에 맞는 유일한 요소를 반환하고, 이러한 요소가 둘 이상 있으면 예외를 throw합니다. + 입력 시퀀스에서 의 조건에 맞는 단일 요소입니다. + 단일 요소를 반환할 입니다. + 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 의 조건에 맞는 요소가 없는 경우또는의 조건에 맞는 요소가 둘 이상인 경우또는소스 시퀀스가 비어 있는 경우 + + + 시퀀스의 유일한 요소를 반환하거나 시퀀스가 비어 있으면 기본값을 반환합니다. 시퀀스에 요소가 둘 이상 있으면 예외를 throw합니다. + 입력 시퀀스의 단일 요소이거나, 시퀀스에 요소가 없으면 default()입니다. + 단일 요소를 반환할 입니다. + + 요소의 형식입니다. + + 가 null입니다. + + 에 둘 이상의 요소가 있는 경우 + + + 시퀀스에서 지정된 조건에 맞는 유일한 요소를 반환하거나 이러한 요소가 없으면 기본값을 반환합니다. 조건에 맞는 요소가 둘 이상 있으면 예외를 throw합니다. + 입력 시퀀스에서 의 조건에 맞는 단일 요소를 반환하거나, 이러한 요소가 없으면 default()를 반환합니다. + 단일 요소를 반환할 입니다. + 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + 의 조건에 맞는 요소가 둘 이상인 경우 + + + 시퀀스에서 지정된 수의 요소를 건너뛴 다음 나머지 요소를 반환합니다. + 입력 시퀀스에서 지정된 인덱스 뒤에 나오는 요소가 들어 있는 입니다. + 요소를 반환할 입니다. + 나머지 요소를 반환하기 전에 건너뛸 요소 수입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 지정된 조건이 true이면 시퀀스에 있는 요소를 무시하고 나머지 요소를 반환합니다. + + 에서 에 지정된 테스트를 통과하지 않는 급수의 첫 요소부터 시작되는 요소가 들어 있는 입니다. + 요소를 반환할 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 조건이 true이면 시퀀스에 있는 요소를 무시하고 나머지 요소를 반환합니다.조건자 함수의 논리에 요소의 인덱스가 사용됩니다. + + 에서 에 지정된 테스트를 통과하지 않는 급수의 첫 요소부터 시작되는 요소가 들어 있는 입니다. + 요소를 반환할 입니다. + 각 요소를 조건에 대해 테스트할 함수이며, 이 함수의 두 번째 매개 변수는 소스 요소의 인덱스를 나타냅니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + + 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 값의 시퀀스입니다. + + 가 null입니다. + 합이 보다 큰 경우 + + + + 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + + + 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 값의 시퀀스입니다. + + 가 null입니다. + 합이 보다 큰 경우 + + + + 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 값의 시퀀스입니다. + + 가 null입니다. + 합이 보다 큰 경우 + + + nullable 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + 합이 보다 큰 경우 + + + nullable 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + nullable 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + 합이 보다 큰 경우 + + + nullable 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + 합이 보다 큰 경우 + + + nullable 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 nullable 값의 시퀀스입니다. + + 가 null입니다. + + + + 값 시퀀스의 합을 계산합니다. + 시퀀스에 있는 값의 합입니다. + 합을 계산할 값의 시퀀스입니다. + + 가 null입니다. + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 합이 보다 큰 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 합이 보다 큰 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 합이 보다 큰 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 합이 보다 큰 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 합이 보다 큰 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + 합이 보다 큰 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 nullable 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 입력 시퀀스의 각 요소에 대해 프로젝션 함수를 호출하여 가져온 값 시퀀스의 합을 계산합니다. + 투영된 값의 합입니다. + + 형식 값의 시퀀스입니다. + 각 요소에 적용할 프로젝션 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스 시작 위치에서 지정된 수의 연속 요소를 반환합니다. + + 시작 위치에서 지정된 수의 요소가 들어 있는 입니다. + 요소가 반환되는 시퀀스입니다. + 반환할 요소 수입니다. + + 요소의 형식입니다. + + 가 null입니다. + + + 지정된 조건이 true인 동안 시퀀스에서 요소를 반환합니다. + 입력 시퀀스에서 요소가 에 지정된 테스트를 더 이상 통과하지 않는 위치보다 앞에 나오는 요소가 들어 있는 입니다. + 요소가 반환되는 시퀀스입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 조건이 true인 동안 시퀀스에서 요소를 반환합니다.조건자 함수의 논리에 요소의 인덱스가 사용됩니다. + 입력 시퀀스에서 요소가 에 지정된 테스트를 더 이상 통과하지 않는 위치보다 앞에 나오는 요소가 들어 있는 입니다. + 요소가 반환되는 시퀀스입니다. + 각 요소를 조건에 대해 테스트할 함수이며, 이 함수의 두 번째 매개 변수는 소스 시퀀스에 있는 요소의 인덱스를 나타냅니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 요소를 키에 따라 오름차순으로 다시 정렬합니다. + 요소가 키에 따라 정렬된 입니다. + 정렬할 요소가 들어 있는 입니다. + 각 요소에서 키를 추출하는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 요소를 지정된 비교자를 사용하여 오름차순으로 다시 정렬합니다. + 요소가 키에 따라 정렬된 입니다. + 정렬할 요소가 들어 있는 입니다. + 각 요소에서 키를 추출하는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + , 또는 가 null인 경우 + + + 시퀀스의 요소를 키에 따라 내림차순으로 다시 정렬합니다. + 요소가 키에 따라 내림차순으로 정렬된 입니다. + 정렬할 요소가 들어 있는 입니다. + 각 요소에서 키를 추출하는 함수입니다. + + 요소의 형식입니다. + + 에 지정된 함수가 반환하는 키 형식입니다. + + 또는 가 null인 경우 + + + 시퀀스의 요소를 지정된 비교자를 사용하여 내림차순으로 다시 정렬합니다. + 요소가 키에 따라 내림차순으로 정렬된 컬렉션입니다. + 정렬할 요소가 들어 있는 입니다. + 각 요소에서 키를 추출하는 함수입니다. + 키를 비교할 입니다. + + 요소의 형식입니다. + + 함수가 반환하는 키 형식입니다. + + , 또는 가 null인 경우 + + + 기본 같음 비교자를 사용하여 두 시퀀스의 합집합을 구합니다. + 두 입력 시퀀스의 모든 요소가 들어 있는 이며, 중복 요소는 제외됩니다. + 해당 고유 요소가 합집합 연산의 첫 번째 집합을 이루는 시퀀스입니다. + 해당 고유 요소가 합집합 연산의 두 번째 집합을 이루는 시퀀스입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 를 사용하여 두 시퀀스의 합집합을 구합니다. + 두 입력 시퀀스의 모든 요소가 들어 있는 이며, 중복 요소는 제외됩니다. + 해당 고유 요소가 합집합 연산의 첫 번째 집합을 이루는 시퀀스입니다. + 해당 고유 요소가 합집합 연산의 두 번째 집합을 이루는 시퀀스입니다. + 값을 비교할 입니다. + 입력 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + 조건자에 따라 값의 시퀀스를 필터링합니다. + 입력 시퀀스에서 에 지정된 조건에 맞는 요소가 들어 있는 입니다. + 필터링할 입니다. + 각 요소를 조건에 대해 테스트하는 함수입니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 조건자에 따라 값의 시퀀스를 필터링합니다.조건자 함수의 논리에 각 요소의 인덱스가 사용됩니다. + 입력 시퀀스에서 에 지정된 조건에 맞는 요소가 들어 있는 입니다. + 필터링할 입니다. + 각 요소를 조건에 대해 테스트할 함수이며, 이 함수의 두 번째 매개 변수는 소스 시퀀스에 있는 요소의 인덱스를 나타냅니다. + + 요소의 형식입니다. + + 또는 가 null인 경우 + + + 지정된 조건자 함수를 사용하여 두 시퀀스를 병합합니다. + 두 입력 시퀀스의 병합된 요소가 들어 있는 입니다. + 병합할 첫 번째 시퀀스입니다. + 병합할 두 번째 시퀀스입니다. + 두 시퀀스의 요소를 병합하는 방법을 지정하는 함수입니다. + 첫 번째 입력 시퀀스 요소의 형식입니다. + 두 번째 입력 시퀀스 요소의 형식입니다. + 결과 시퀀스 요소의 형식입니다. + + 또는 가 null인 경우 + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/ru/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/ru/System.Linq.Queryable.xml new file mode 100644 index 0000000..b471d71 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/ru/System.Linq.Queryable.xml @@ -0,0 +1,1146 @@ + + + + System.Linq.Queryable + + + + Представляет дерево выражения и обеспечивает функциональность для выполнения дерева выражения после его перезаписи. + + + Инициализирует новый экземпляр класса . + + + Представляет дерево выражения и обеспечивает функциональность для выполнения дерева выражения после его перезаписи. + Тип данных значения, получаемого в результате выполнения дерева выражения. + + + Инициализирует новый экземпляр класса . + Дерево выражения, которое должно быть связано с новым экземпляром. + + + Представляет в виде источника данных . + + + Инициализирует новый экземпляр класса . + + + Представляет коллекцию в виде источника данных . + Тип данных в коллекции. + + + Инициализирует новый экземпляр класса и связывает его с указанной коллекцией . + Коллекция, которую необходимо связать с новым экземпляром. + + + Инициализирует новый экземпляр класса и связывает его с деревом выражения. + Дерево выражения, которое должно быть связано с новым экземпляром. + + + Возвращает перечислитель, который позволяет выполнять перебор элементов связанной коллекции или, если коллекция имеет значение NULL, коллекции, получаемой в результате перезаписи связанного дерева выражения в виде запроса к источнику данных и его выполнения. + Перечислитель, с помощью которого можно осуществлять перебор по связанному источнику данных. + + + Возвращает перечислитель, который позволяет выполнять перебор элементов связанной коллекции или, если коллекция имеет значение NULL, коллекции, получаемой в результате перезаписи связанного дерева выражения в виде запроса к источнику данных и его выполнения. + Перечислитель, с помощью которого можно осуществлять перебор по связанному источнику данных. + + + Получает тип данных в коллекции, представленной данным экземпляром. + Тип данных в коллекции, представленной данным экземпляром. + + + Получает дерево выражения, связанное с данным экземпляром или представляющее его. + Дерево выражения, связанное с данным экземпляром или представляющее его. + + + Получает объект поставщика запросов, связанного с данным экземпляром. + Поставщик запросов, связанный с данным экземпляром. + + + Создает новый объект и связывает его с указанным деревом выражения, которое представляет коллекцию данных . + Объект EnumerableQuery, связанный с данным выражением . + Дерево выражения, которое требуется выполнить. + Тип данных в коллекции, представленной выражением . + + + Создает новый объект и связывает его с указанным деревом выражения, которое представляет коллекцию данных . + Объект , связанный с этим выражением . + Дерево выражения, которое представляет коллекцию данных . + + + Выполняет выражение после его перезаписи, чтобы вместо методов для все перечислимых источников данных, к которым нельзя создать запрос с помощью методов , вызывались методы . + Значение, получаемое в результате выполнения . + Дерево выражения, которое требуется выполнить. + Тип данных в коллекции, представленной выражением . + + + Выполняет выражение после его перезаписи, чтобы вместо методов для все перечислимых источников данных, к которым нельзя создать запрос с помощью методов , вызывались методы . + Значение, получаемое в результате выполнения . + Дерево выражения, которое требуется выполнить. + + + Возвращает текстовое представление перечислимой коллекции или, если она имеет значение NULL, дерева выражения, связанного с данным экземпляром. + Текстовое представление перечислимой коллекции или, если она имеет значение NULL, дерева выражения, связанного с данным экземпляром. + + + Предоставляет набор методов типа static (Shared в Visual Basic) для выполнения запросов к структурам данных, реализующим объект . + + + Применяет к последовательности агрегатную функцию. + Конечное агрегатное значение. + Последовательность, для которой выполняется статистическая операция. + Агрегатная функция, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Последовательность не содержит элементов. + + + Применяет к последовательности агрегатную функцию.Указанное начальное значение используется в качестве исходного значения агрегатной операции. + Конечное агрегатное значение. + Последовательность, для которой выполняется статистическая операция. + Начальное агрегатное значение. + Агрегатная функция, вызываемая для каждого элемента. + Тип элементов последовательности . + Тип агрегатного значения. + Значение параметра или — null. + + + Применяет к последовательности агрегатную функцию.Указанное начальное значение служит исходным значением для агрегатной операции, а указанная функция используется для выбора результирующего значения. + Преобразованное конечное агрегатное значение. + Последовательность, для которой выполняется статистическая операция. + Начальное агрегатное значение. + Агрегатная функция, вызываемая для каждого элемента. + Функция, преобразующая конечное агрегатное значение в результирующее значение. + Тип элементов последовательности . + Тип агрегатного значения. + Тип результирующего значения. + Значение параметра , или — null. + + + Проверяет, все ли элементы последовательности удовлетворяют условию. + true, если каждый элемент исходной последовательности проходит проверку, определяемую указанным предикатом, или если последовательность пуста; в противном случае — false. + Последовательность, элементы которой проверяются на соответствие условию. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Проверяет, содержит ли последовательность какие-либо элементы. + true, если исходная последовательность содержит какие-либо элементы, в противном случае — false. + Последовательность, проверяемая на наличие элементов. + Тип элементов последовательности . + Параметр имеет значение null. + + + Проверяет, удовлетворяет ли какой-либо элемент последовательности заданному условию. + true, если какие-либо элементы исходной последовательности проходят проверку, определяемую указанным предикатом; в противном случае — false. + Последовательность, элементы которой проверяются на соответствие условию. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Преобразовывает универсальный объект в универсальный объект . + Объект , представляющий входную последовательность. + Последовательность, подлежащая преобразованию. + Тип элементов последовательности . + Параметр имеет значение null. + + + Преобразовывает коллекцию в объект . + Объект , представляющий входную последовательность. + Последовательность, подлежащая преобразованию. + Последовательность не реализует объект для некоторых типов . + Параметр имеет значение null. + + + Вычисляет среднее последовательности значений типа . + Среднее для последовательности значений. + Последовательность значений , для которых вычисляется среднее. + Параметр имеет значение null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа . + Среднее для последовательности значений. + Последовательность значений , для которых вычисляется среднее. + Параметр имеет значение null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа . + Среднее для последовательности значений. + Последовательность значений , для которых вычисляется среднее. + Параметр имеет значение null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа . + Среднее для последовательности значений. + Последовательность значений , для которых вычисляется среднее. + Параметр имеет значение null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений обнуляемого типа. + Среднее арифметическое значений последовательности, или null, если исходная последовательность пуста либо содержит только значения null. + Последовательность значений обнуляемого типа, для которых вычисляется среднее. + Параметр имеет значение null. + + + Вычисляет среднее для последовательности значений обнуляемого типа. + Среднее арифметическое значений последовательности, или null, если исходная последовательность пуста либо содержит только значения null. + Последовательность значений обнуляемого типа, для которых вычисляется среднее. + Параметр имеет значение null. + + + Вычисляет среднее для последовательности значений обнуляемого типа. + Среднее арифметическое значений последовательности, или null, если исходная последовательность пуста либо содержит только значения null. + Последовательность значений обнуляемого типа, для которых вычисляется среднее. + Параметр имеет значение null. + + + Вычисляет среднее для последовательности значений обнуляемого типа. + Среднее арифметическое значений последовательности, или null, если исходная последовательность пуста либо содержит только значения null. + Последовательность значений обнуляемого типа, для которых вычисляется среднее. + Параметр имеет значение null. + + + Вычисляет среднее для последовательности значений обнуляемого типа. + Среднее арифметическое значений последовательности, или null, если исходная последовательность пуста либо содержит только значения null. + Последовательность значений обнуляемого типа, для которых вычисляется среднее. + Параметр имеет значение null. + + + Вычисляет среднее для последовательности значений типа . + Среднее для последовательности значений. + Последовательность значений , для которых вычисляется среднее. + Параметр имеет значение null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Среднее для последовательности значений. + Последовательность значений, используемых для вычисления среднего. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Среднее для последовательности значений. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Среднее для последовательности значений. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Среднее для последовательности значений. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Последовательность не содержит элементов. + + + Вычисляет среднее для последовательности значений обнуляемого типа, которая получается в результате применения функции проекции к каждому элементу входной последовательности. + Среднее арифметическое значений последовательности, или null, если последовательность пуста либо содержит только значения null. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет среднее для последовательности значений обнуляемого типа, которая получается в результате применения функции проекции к каждому элементу входной последовательности. + Среднее арифметическое значений последовательности, или null, если последовательность пуста либо содержит только значения null. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет среднее для последовательности значений обнуляемого типа, которая получается в результате применения функции проекции к каждому элементу входной последовательности. + Среднее арифметическое значений последовательности, или null, если последовательность пуста либо содержит только значения null. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет среднее для последовательности значений обнуляемого типа, которая получается в результате применения функции проекции к каждому элементу входной последовательности. + Среднее арифметическое значений последовательности, или null, если последовательность пуста либо содержит только значения null. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет среднее для последовательности значений обнуляемого типа, которая получается в результате применения функции проекции к каждому элементу входной последовательности. + Среднее арифметическое значений последовательности, или null, если последовательность пуста либо содержит только значения null. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет среднее для последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Среднее для последовательности значений. + Последовательность значений, для которых вычисляется среднее. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Последовательность не содержит элементов. + + + Преобразовывает элементы объекта в заданный тип. + Объект , который содержит все элементы исходной последовательности, преобразованные в заданный тип. + Объект , содержащий преобразуемые элементы. + Тип, в который преобразуются элементы объекта . + Параметр имеет значение null. + Элемент последовательности не может быть приведен к типу . + + + Объединяет две последовательности. + Объект , содержащий объединенные элементы двух входных последовательностей. + Первая из объединяемых последовательностей. + Последовательность, объединяемая с первой последовательностью. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Определяет, содержится ли указанный элемент в последовательности, используя компаратор проверки на равенство по умолчанию. + true, если входная последовательность содержит элемент с указанным значением, в противном случае — false. + Объект , в котором требуется найти элемент . + Объект, который требуется найти в последовательности. + Тип элементов последовательности . + Параметр имеет значение null. + + + Определяет, содержит ли последовательность заданный элемент, используя указанный компаратор . + true, если входная последовательность содержит элемент с указанным значением, в противном случае — false. + Объект , в котором требуется найти элемент . + Объект, который требуется найти в последовательности. + Компаратор , используемый для сравнения значений. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает количество элементов в последовательности. + Число элементов во входной последовательности. + Объект , содержащий элементы, которые требуется подсчитать. + Тип элементов последовательности . + Параметр имеет значение null. + Число элементов в последовательности больше, чем . + + + Возвращает количество элементов указанной последовательности, удовлетворяющих определенному условию. + Число элементов последовательности, удовлетворяющих условию функции предиката. + Объект , содержащий элементы, которые требуется подсчитать. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + Число элементов в последовательности больше, чем . + + + Возвращает элементы указанной последовательности или одноэлементную коллекцию, содержащую значение параметра типа по умолчанию, если последовательность пуста. + Объект , содержащий значение default(), если последовательность пуста; в противном случае возвращается . + Объект , для которого возвращается значение по умолчанию, если последовательность пуста. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает элементы указанной последовательности или одноэлементную коллекцию, содержащую указанное значение, если последовательность пуста. + Объект , содержащий значение , если последовательность пуста; в противном случае возвращается . + Объект , для которого возвращается указанное значение, если последовательность пуста. + Значение, возвращаемое в случае пустой последовательности. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает различающиеся элементы последовательности, используя для сравнения значений компаратор проверки на равенство по умолчанию. + Объект , содержащий различающиеся элементы из последовательности . + Объект , из которого требуется удалить дубликаты. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает различающиеся элементы последовательности, используя для сравнения значений указанный компаратор . + Объект , содержащий различающиеся элементы из последовательности . + Объект , из которого требуется удалить дубликаты. + Компаратор , используемый для сравнения значений. + Тип элементов последовательности . + Значение параметра или — null. + + + Возвращает элемент по указанному индексу в последовательности. + Элемент, находящийся в указанной позиции в последовательности . + Объект , из которого требуется возвратить элемент. + Отсчитываемый от нуля индекс извлекаемого элемента. + Тип элементов последовательности . + Параметр имеет значение null. + Значение параметра меньше нуля. + + + Возвращает элемент по указанному индексу в последовательности или значение по умолчанию, если индекс вне допустимого диапазона. + default(), если позиция находится вне последовательности ; в противном случае — элемент, находящийся в указанной позиции в последовательности . + Объект , из которого требуется возвратить элемент. + Отсчитываемый от нуля индекс извлекаемого элемента. + Тип элементов последовательности . + Параметр имеет значение null. + + + Находит разность множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию. + Объект , являющийся разностью двух последовательностей как множеств. + Объект , из которого требуется извлечь элементы, отсутствующие в последовательности . + Последовательность , элементы которой, входящие также в первую последовательность, не будут включены в возвращаемую последовательность. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Находит разность множеств, представленных двумя последовательностями, используя для сравнения значений указанный компаратор . + Объект , являющийся разностью двух последовательностей как множеств. + Объект , из которого требуется извлечь элементы, отсутствующие в последовательности . + Последовательность , элементы которой, входящие также в первую последовательность, не будут включены в возвращаемую последовательность. + Компаратор , используемый для сравнения значений. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Возвращает первый элемент последовательности. + Первый элемент последовательности . + Объект , первый элемент которого требуется возвратить. + Тип элементов последовательности . + Параметр имеет значение null. + Исходная последовательность пуста. + + + Возвращает первый элемент последовательности, удовлетворяющий указанному условию. + Первый элемент последовательности , прошедший проверку с помощью предиката . + Объект , из которого требуется возвратить элемент. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + Ни один элемент не удовлетворяет условию предиката .– или –Исходная последовательность пуста. + + + Возвращает первый элемент последовательности или значение по умолчанию, если последовательность не содержит элементов. + default(), если последовательность пуста, в противном случае — первый элемент последовательности . + Объект , первый элемент которого требуется возвратить. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает первый элемент последовательности, удовлетворяющий указанному условию, или значение по умолчанию, если ни одного такого элемента не найдено. + default(), если последовательность пуста или если ни один ее элемент не прошел проверку, определенную предикатом ; в противном случае — первый элемент последовательности , прошедший проверку, определенную предикатом . + Объект , из которого требуется возвратить элемент. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа. + Объект IQueryable<IGrouping<TKey, TSource>> в C# или IQueryable(Of IGrouping(Of TKey, TSource)) в Visual Basic, где каждый объект содержит последовательность объектов и ключ. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и сравнивает ключи с помощью указанного компаратора. + Объект IQueryable<IGrouping<TKey, TSource>> в C# или IQueryable(Of IGrouping(Of TKey, TSource)) в Visual Basic, где каждый объект содержит последовательность объектов и ключ. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра , или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и проецирует элементы каждой группы с помощью указанной функции. + Объект IQueryable<IGrouping<TKey, TElement>> в C# или IQueryable(Of IGrouping(Of TKey, TElement)) в Visual Basic, где каждый объект содержит последовательность объектов типа и ключ. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Функция, сопоставляющая каждый исходный элемент с элементом объекта . + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Тип элементов каждого объекта . + Значение параметра , или — null. + + + Группирует элементы последовательности и проецирует элементы каждой группы с помощью указанной функции.Значения ключей сравниваются с использованием заданного компаратора. + Объект IQueryable<IGrouping<TKey, TElement>> в C# или IQueryable(Of IGrouping(Of TKey, TElement)) в Visual Basic, где каждый объект содержит последовательность объектов типа и ключ. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Функция, сопоставляющая каждый исходный элемент с элементом объекта . + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Тип элементов каждого объекта . + Значение параметра , , или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа.Элементы каждой группы проецируются с помощью указанной функции. + Объект T:System.Linq.IQueryable`1 с аргументом типа , каждый элемент которого представляет проекцию группы и ее ключа. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Функция, сопоставляющая каждый исходный элемент с элементом объекта . + Функция для создания результирующего значения для каждой группы. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Тип элементов каждого объекта . + Тип результирующего значения, возвращаемого функцией . + Значение параметра , , или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа.Ключи сравниваются с помощью указанного компаратора, элементы каждой группы проецируются с помощью указанной функции. + Объект T:System.Linq.IQueryable`1 с аргументом типа , каждый элемент которого представляет проекцию группы и ее ключа. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Функция, сопоставляющая каждый исходный элемент с элементом объекта . + Функция для создания результирующего значения для каждой группы. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Тип элементов каждого объекта . + Тип результирующего значения, возвращаемого функцией . + Значение параметра , , , или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. + Объект T:System.Linq.IQueryable`1 с аргументом типа , каждый элемент которого представляет проекцию группы и ее ключа. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Функция для создания результирующего значения для каждой группы. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Тип результирующего значения, возвращаемого функцией . + Значение параметра , или — null. + + + Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа.Ключи сравниваются с использованием заданного компаратора. + Объект T:System.Linq.IQueryable`1 с аргументом типа , каждый элемент которого представляет проекцию группы и ее ключа. + Объект , элементы которого следует сгруппировать. + Функция, извлекающая ключ для каждого элемента. + Функция для создания результирующего значения для каждой группы. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Тип результирующего значения, возвращаемого функцией . + Значение параметра , , или — null. + + + Устанавливает корреляцию между элементами двух последовательностей на основе равенства ключей и группирует результаты.Для сравнения ключей используется компаратор проверки на равенство по умолчанию. + Объект , который содержит элементы типа , полученные в результате соединения двух последовательностей с группировкой. + Первая последовательность для соединения. + Последовательность, соединяемая с первой последовательностью. + Функция, извлекающая ключ соединения из каждого элемента первой последовательности. + Функция, извлекающая ключ соединения из каждого элемента второй последовательности. + Функция, создающая результирующий элемент для элемента первой последовательности и коллекции соответствующих элементов второй последовательности. + Тип элементов первой последовательности. + Тип элементов второй последовательности. + Тип ключей, возвращаемых функциями селектора ключа. + Тип результирующих элементов. + Значение параметра , , , или — null. + + + Устанавливает корреляцию между элементами двух последовательностей на основе равенства ключей и группирует результаты.Для сравнения ключей используется указанный компаратор . + Объект , который содержит элементы типа , полученные в результате соединения двух последовательностей с группировкой. + Первая последовательность для соединения. + Последовательность, соединяемая с первой последовательностью. + Функция, извлекающая ключ соединения из каждого элемента первой последовательности. + Функция, извлекающая ключ соединения из каждого элемента второй последовательности. + Функция, создающая результирующий элемент для элемента первой последовательности и коллекции соответствующих элементов второй последовательности. + Компаратор, используемый для хэширования и сравнения ключей. + Тип элементов первой последовательности. + Тип элементов второй последовательности. + Тип ключей, возвращаемых функциями селектора ключа. + Тип результирующих элементов. + Значение параметра , , , или — null. + + + Находит пересечение множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию. + Последовательность, представляющая собой пересечение двух заданных последовательностей как множеств. + Последовательность, из которой возвращаются различающиеся элементы, входящие также в . + Последовательность, из которой возвращаются различающиеся элементы, входящие также в первую последовательность. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Находит пересечение множеств, представленных двумя последовательностями, используя для сравнения значений указанный компаратор . + Объект , являющийся пересечением двух последовательностей как множеств. + Объект , из которого требуется извлечь различающиеся элементы, входящие также в последовательность . + Объект , из которого извлекаются различающиеся элементы, входящие также в первую последовательность. + Компаратор , используемый для сравнения значений. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Устанавливает корреляцию между элементами двух последовательностей на основе сопоставления ключей.Для сравнения ключей используется компаратор проверки на равенство по умолчанию. + Объект , который содержит элементы типа , полученные в результате внутреннего соединения двух последовательностей. + Первая последовательность для соединения. + Последовательность, соединяемая с первой последовательностью. + Функция, извлекающая ключ соединения из каждого элемента первой последовательности. + Функция, извлекающая ключ соединения из каждого элемента второй последовательности. + Функция для создания результирующего элемента для пары соответствующих элементов. + Тип элементов первой последовательности. + Тип элементов второй последовательности. + Тип ключей, возвращаемых функциями селектора ключа. + Тип результирующих элементов. + Значение параметра , , , или — null. + + + Устанавливает корреляцию между элементами двух последовательностей на основе сопоставления ключей.Для сравнения ключей используется указанный компаратор . + Объект , который содержит элементы типа , полученные в результате внутреннего соединения двух последовательностей. + Первая последовательность для соединения. + Последовательность, соединяемая с первой последовательностью. + Функция, извлекающая ключ соединения из каждого элемента первой последовательности. + Функция, извлекающая ключ соединения из каждого элемента второй последовательности. + Функция для создания результирующего элемента для пары соответствующих элементов. + Компаратор , используемый для хэширования и сравнения ключей. + Тип элементов первой последовательности. + Тип элементов второй последовательности. + Тип ключей, возвращаемых функциями селектора ключа. + Тип результирующих элементов. + Значение параметра , , , или — null. + + + Возвращает последний элемент последовательности. + Значение, находящееся в последней позиции последовательности . + Объект , последний элемент которого требуется возвратить. + Тип элементов последовательности . + Параметр имеет значение null. + Исходная последовательность пуста. + + + Возвращает последний элемент последовательности, удовлетворяющий указанному условию. + Последний элемент последовательности , прошедший проверку, заданную предикатом . + Объект , из которого требуется возвратить элемент. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + Ни один элемент не удовлетворяет условию предиката .– или –Исходная последовательность пуста. + + + Возвращает последний элемент последовательности или значение по умолчанию, если последовательность не содержит элементов. + default(), если последовательность пуста, в противном случае — последний элемент последовательности . + Объект , последний элемент которого требуется возвратить. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает последний элемент последовательности, удовлетворяющий указанному условию, или значение по умолчанию, если ни одного такого элемента не найдено. + default(), если последовательность пуста или ни один ее элемент не прошел проверку функцией предиката, в противном случае — последний элемент последовательности , прошедший проверку функцией предиката. + Объект , из которого требуется возвратить элемент. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Возвращает значение типа , представляющее общее число элементов в последовательности. + Число элементов в последовательности . + Объект , содержащий элементы, которые требуется подсчитать. + Тип элементов последовательности . + Параметр имеет значение null. + Число элементов больше, чем . + + + Возвращает значение типа , представляющее число элементов последовательности, удовлетворяющих заданному условию. + Число элементов последовательности , удовлетворяющих условию функции предиката. + Объект , содержащий элементы, которые требуется подсчитать. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + Число найденных элементов больше, чем . + + + Возвращает максимальное значение для универсального интерфейса . + Максимальное значение в последовательности. + Последовательность значений, для которой определяется максимум. + Тип элементов последовательности . + Параметр имеет значение null. + + + Вызывает функцию проекции для каждого элемента универсального интерфейса и возвращает максимальное результирующее значение. + Максимальное значение в последовательности. + Последовательность значений, для которой определяется максимум. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Тип значения, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Возвращает минимальное значение для универсального интерфейса . + Минимальное значение в последовательности. + Последовательность значений, для которой определяется минимум. + Тип элементов последовательности . + Параметр имеет значение null. + + + Вызывает функцию проекции для каждого элемента универсального интерфейса и возвращает минимальное результирующее значение. + Минимальное значение в последовательности. + Последовательность значений, для которой определяется минимум. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Тип значения, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Выполняет фильтрацию элементов объекта по заданному типу. + Коллекция элементов последовательности , имеющих тип . + Объект , элементы которого следует фильтровать. + Тип, по которому фильтруются элементы последовательности. + Параметр имеет значение null. + + + Сортирует элементы последовательности в порядке возрастания ключа. + Объект , элементы которого отсортированы по ключу. + Последовательность значений, которые следует упорядочить. + Функция, извлекающая ключ из элемента. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Сортирует элементы последовательности в порядке возрастания с использованием указанного компаратора. + Объект , элементы которого отсортированы по ключу. + Последовательность значений, которые следует упорядочить. + Функция, извлекающая ключ из элемента. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра , или — null. + + + Сортирует элементы последовательности в порядке убывания ключа. + Объект , элементы которого отсортированы по ключу в порядке убывания. + Последовательность значений, которые следует упорядочить. + Функция, извлекающая ключ из элемента. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Сортирует элементы последовательности в порядке убывания с использованием указанного компаратора. + Объект , элементы которого отсортированы по ключу в порядке убывания. + Последовательность значений, которые следует упорядочить. + Функция, извлекающая ключ из элемента. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра , или — null. + + + Изменяет порядок элементов последовательности на противоположный. + Объект , элементы которого соответствуют элементам входной последовательности, но следуют в противоположном порядке. + Последовательность значений, которые следует расставить в обратном порядке. + Тип элементов последовательности . + Параметр имеет значение null. + + + Проецирует каждый элемент последовательности в новую форму. + Объект , элементы которого получены в результате вызова функции проекции для каждого элемента последовательности . + Последовательность значений, которые следует проецировать. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Тип значения, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Проецирует каждый элемент последовательности в новую форму, добавляя индекс элемента. + Объект , элементы которого получены в результате вызова функции проекции для каждого элемента последовательности . + Последовательность значений, которые следует проецировать. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Тип значения, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Проецирует каждый элемент последовательности в объект и вызывает функцию селектора результата для каждого элемента.Результирующие значения из всех промежуточных последовательностей возвращаются объединенными в одну одномерную последовательность. + Объект , элементы которого получены в результате вызова функции проекции "один ко многим" для каждого элемента последовательности и последующего сопоставления каждого элемента такой промежуточной последовательности и соответствующего ему элемента последовательности с результирующим элементом. + Последовательность значений, которые следует проецировать. + Функция проекции, применяемая к каждому элементу входной последовательности. + Функция проекции, применяемая к каждому элементу каждой промежуточной последовательности. + Тип элементов последовательности . + Тип промежуточных элементов, собранных функцией, заданной параметром . + Тип элементов результирующей последовательности. + Значение параметра , или — null. + + + Проецирует каждый элемент последовательности в объект и объединяет результирующие последовательности в одну последовательность. + Объект , элементы которого получены в результате вызова функции проекции "один ко многим" для каждого элемента входной последовательности. + Последовательность значений, которые следует проецировать. + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Тип элементов последовательности, возвращаемых функцией, заданной параметром . + Значение параметра или — null. + + + Проецирует каждый элемент последовательности в объект , включающий индекс исходного элемента, на основе которого он был создан.Для каждого элемента каждой промежуточной последовательности вызывается функция селектора результата, и результирующие значения возвращаются объединенными в одну одномерную последовательность. + Объект , элементы которого получены в результате вызова функции проекции "один ко многим" для каждого элемента последовательности и последующего сопоставления каждого элемента такой промежуточной последовательности и соответствующего ему элемента последовательности с результирующим элементом. + Последовательность значений, которые следует проецировать. + Функция проекции, применяемая к каждому элементу входной последовательности; второй параметр этой функции представляет индекс исходного элемента. + Функция проекции, применяемая к каждому элементу каждой промежуточной последовательности. + Тип элементов последовательности . + Тип промежуточных элементов, собранных функцией, заданной параметром . + Тип элементов результирующей последовательности. + Значение параметра , или — null. + + + Проецирует каждый элемент последовательности в объект и объединяет результирующие последовательности в одну последовательность.Индекс каждого элемента исходной последовательности используется в проецированной форме этого элемента. + Объект , элементы которого получены в результате вызова функции проекции "один ко многим" для каждого элемента входной последовательности. + Последовательность значений, которые следует проецировать. + Функция проекции, применяемая к каждому элементу; второй параметр этой функции представляет индекс исходного элемента. + Тип элементов последовательности . + Тип элементов последовательности, возвращаемых функцией, заданной параметром . + Значение параметра или — null. + + + Определяет, совпадают ли две последовательности, используя для сравнения элементов компаратор проверки на равенство по умолчанию. + true, если у двух исходных последовательностей одинаковая длина и соответствующие элементы совпадают, в противном случае — false. + Объект , элементы которого сравниваются с элементами последовательности . + Объект , элементы которого сравниваются с элементами первой последовательности. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Определяет, совпадают ли две последовательности, используя для сравнения элементов указанный компаратор . + true, если у двух исходных последовательностей одинаковая длина и соответствующие элементы совпадают, в противном случае — false. + Объект , элементы которого сравниваются с элементами последовательности . + Объект , элементы которого сравниваются с элементами первой последовательности. + Компаратор , используемый для сравнения элементов. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Возвращает единственный элемент последовательности и генерирует исключение, если число элементов последовательности отлично от 1. + Единственный элемент входной последовательности. + Объект , единственный элемент которого требуется возвратить. + Тип элементов последовательности . + Параметр имеет значение null. + + имеет более одного элемента. + + + Возвращает единственный элемент последовательности, удовлетворяющий заданному условию, и генерирует исключение, если таких элементов больше одного. + Единственный элемент входной последовательности, удовлетворяющий условию предиката . + Объект , из которого требуется возвратить единственный элемент. + Функция для проверки элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + Ни один элемент не удовлетворяет условию предиката .– или –Условию предиката удовлетворяет более одного элемента.– или –Исходная последовательность пуста. + + + Возвращает единственный элемент последовательности или значение по умолчанию, если последовательность пуста; если в последовательности более одного элемента, генерируется исключение. + Единственный элемент входной последовательности или default(), если в последовательности нет элементов. + Объект , единственный элемент которого требуется возвратить. + Тип элементов последовательности . + Параметр имеет значение null. + + имеет более одного элемента. + + + Возвращает единственный элемент последовательности, удовлетворяющий заданному условию, или значение по умолчанию, если такого элемента не существует; если условию удовлетворяет более одного элемента, генерируется исключение. + Единственный элемент входной последовательности, удовлетворяющий условию предиката , или default(), если такой элемент не найден. + Объект , из которого требуется возвратить единственный элемент. + Функция для проверки элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + Условию предиката удовлетворяет более одного элемента. + + + Пропускает заданное число элементов в последовательности и возвращает остальные элементы. + Объект , содержащий элементы из входной последовательности, начиная с указанного индекса. + Объект , из которого требуется возвратить элементы. + Число элементов, пропускаемых перед возвращением остальных элементов. + Тип элементов последовательности . + Параметр имеет значение null. + + + Пропускает элементы в последовательности, пока они удовлетворяют заданному условию, и затем возвращает оставшиеся элементы. + Объект , содержащий цепочку элементов последовательности , начиная с первого элемента, который не прошел проверку, заданную предикатом . + Объект , из которого требуется возвратить элементы. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Пропускает элементы в последовательности, пока они удовлетворяют заданному условию, и затем возвращает оставшиеся элементы.Индекс элемента используется в логике функции предиката. + Объект , содержащий цепочку элементов последовательности , начиная с первого элемента, который не прошел проверку, заданную предикатом . + Объект , из которого требуется возвратить элементы. + Функция, применяемая к каждому элементу для проверки условия; второй параметр этой функции представляет индекс исходного элемента. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет сумму последовательности значений типа . + Сумма последовательности значений. + Последовательность значений , сумму которых требуется вычислить. + Параметр имеет значение null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа . + Сумма последовательности значений. + Последовательность значений , сумму которых требуется вычислить. + Параметр имеет значение null. + + + Вычисляет сумму последовательности значений типа . + Сумма последовательности значений. + Последовательность значений , сумму которых требуется вычислить. + Параметр имеет значение null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа . + Сумма последовательности значений. + Последовательность значений , сумму которых требуется вычислить. + Параметр имеет значение null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений обнуляемого типа. + Сумма последовательности значений. + Последовательность значений обнуляемого типа, сумму которых требуется вычислить. + Параметр имеет значение null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений обнуляемого типа. + Сумма последовательности значений. + Последовательность значений обнуляемого типа, сумму которых требуется вычислить. + Параметр имеет значение null. + + + Вычисляет сумму последовательности значений обнуляемого типа. + Сумма последовательности значений. + Последовательность значений обнуляемого типа, сумму которых требуется вычислить. + Параметр имеет значение null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений обнуляемого типа. + Сумма последовательности значений. + Последовательность значений обнуляемого типа, сумму которых требуется вычислить. + Параметр имеет значение null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений обнуляемого типа. + Сумма последовательности значений. + Последовательность значений обнуляемого типа, сумму которых требуется вычислить. + Параметр имеет значение null. + + + Вычисляет сумму последовательности значений типа . + Сумма последовательности значений. + Последовательность значений , сумму которых требуется вычислить. + Параметр имеет значение null. + + + Вычисляет сумму последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет сумму последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа (допускающей значения NULL), получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа (допускающей значения NULL), получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет сумму последовательности значений типа (допускающей значения NULL), получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений обнуляемого типа, получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + Сумма больше значения . + + + Вычисляет сумму последовательности значений типа (допускающей значения NULL), получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Вычисляет сумму последовательности значений типа , получаемой в результате применения функции проекции к каждому элементу входной последовательности. + Сумма проецированных значений. + Последовательность значений типа . + Функция проекции, применяемая к каждому элементу. + Тип элементов последовательности . + Значение параметра или — null. + + + Возвращает указанное число подряд идущих элементов с начала последовательности. + Объект , содержащий заданное число элементов с начала последовательности . + Последовательность, из которой требуется возвратить элементы. + Число возвращаемых элементов. + Тип элементов последовательности . + Параметр имеет значение null. + + + Возвращает цепочку элементов последовательности, удовлетворяющих указанному условию. + Объект , содержащий элементы входной последовательности до первого элемента, который не прошел проверку, заданную предикатом . + Последовательность, из которой требуется возвратить элементы. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Возвращает цепочку элементов последовательности, удовлетворяющих указанному условию.Индекс элемента используется в логике функции предиката. + Объект , содержащий элементы входной последовательности до первого элемента, который не прошел проверку, заданную предикатом . + Последовательность, из которой требуется возвратить элементы. + Функция, применяемая к каждому элементу для проверки условия; второй параметр этой функции представляет индекс элемента в исходной последовательности. + Тип элементов последовательности . + Значение параметра или — null. + + + Выполняет дополнительное упорядочение элементов последовательности в порядке возрастания ключа. + Объект , элементы которого отсортированы по ключу. + Объект , содержащий сортируемые элементы. + Функция, извлекающая ключ из каждого элемента. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Выполняет дополнительное упорядочение элементов последовательности в порядке возрастания с использованием указанного компаратора. + Объект , элементы которого отсортированы по ключу. + Объект , содержащий сортируемые элементы. + Функция, извлекающая ключ из каждого элемента. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра , или — null. + + + Выполняет дополнительное упорядочение элементов последовательности в порядке убывания ключа. + Объект , элементы которого отсортированы по ключу в порядке убывания. + Объект , содержащий сортируемые элементы. + Функция, извлекающая ключ из каждого элемента. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией, заданной параметром . + Значение параметра или — null. + + + Выполняет дополнительное упорядочение элементов последовательности в порядке убывания с использованием указанного компаратора. + Коллекция, элементы которой отсортированы по ключу в порядке убывания. + Объект , содержащий сортируемые элементы. + Функция, извлекающая ключ из каждого элемента. + Компаратор , используемый для сравнения ключей. + Тип элементов последовательности . + Тип ключа, возвращаемого функцией . + Значение параметра , или — null. + + + Находит объединение множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию. + Объект , который содержит элементы, имеющиеся в обеих входных последовательностях, кроме дубликатов. + Последовательность, различающиеся элементы которой образуют первое множество для операции объединения. + Последовательность, различающиеся элементы которой образуют второе множество для операции объединения. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Находит объединение множеств, представленных двумя последовательностями, используя указанный компаратор . + Объект , который содержит элементы, имеющиеся в обеих входных последовательностях, кроме дубликатов. + Последовательность, различающиеся элементы которой образуют первое множество для операции объединения. + Последовательность, различающиеся элементы которой образуют второе множество для операции объединения. + Компаратор , используемый для сравнения значений. + Тип элементов входных последовательностей. + Значение параметра или — null. + + + Выполняет фильтрацию последовательности значений на основе заданного предиката. + Объект , содержащий элементы входной последовательности, которые удовлетворяют условию, заданному предикатом . + Объект , подлежащий фильтрации. + Функция для проверки каждого элемента на соответствие условию. + Тип элементов последовательности . + Значение параметра или — null. + + + Выполняет фильтрацию последовательности значений на основе заданного предиката.Индекс каждого элемента используется в логике функции предиката. + Объект , содержащий элементы входной последовательности, которые удовлетворяют условию, заданному предикатом . + Объект , подлежащий фильтрации. + Функция, применяемая к каждому элементу для проверки условия; второй параметр этой функции представляет индекс элемента в исходной последовательности. + Тип элементов последовательности . + Значение параметра или — null. + + + Объединяет две последовательности, используя указанную функцию предиката. + Объект , содержащий объединенные элементы двух входных последовательностей. + Первая последовательность для объединения. + Вторая последовательность для объединения. + Функция, которая определяет, как объединить элементы двух последовательностей. + Тип элементов первой входной последовательности. + Тип элементов второй входной последовательности. + Тип элементов результирующей последовательности. + Значение параметра или — null. + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/zh-hans/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/zh-hans/System.Linq.Queryable.xml new file mode 100644 index 0000000..2ffa861 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/zh-hans/System.Linq.Queryable.xml @@ -0,0 +1,1382 @@ + + + + System.Linq.Queryable + + + + 表示一个表达式目录树,并提供在重写该表达式目录树后执行该表达式目录树的功能。 + + + 初始化 类的新实例。 + + + 表示一个表达式目录树,并提供在重写该表达式目录树后执行该表达式目录树的功能。 + 执行表达式目录树后所得到的值的数据类型。 + + + 初始化 类的新实例。 + 要与新实例关联的表达式目录树。 + + + 表示为 数据源。 + + + 初始化 类的新实例。 + + + 集合表示为 数据源。 + 集合中数据的类型。 + + + 初始化 类的新实例,并将该实例与 集合关联。 + 要与新实例关联的集合。 + + + 初始化 类的新实例,并将该实例与表达式目录树关联。 + 要与新实例关联的表达式目录树。 + + + 返回一个枚举数,该枚举数可以循环访问关联的 集合,如果该集合为空,则循环访问通过将关联的表达式目录树重写为 数据源上的查询并执行该查询而得到的集合。 + 可用来循环访问关联的数据源的枚举数。 + + + 返回一个枚举数,该枚举数可以循环访问关联的 集合,如果该集合为空,则循环访问通过将关联的表达式目录树重写为 数据源上的查询并执行该查询而得到的集合。 + 可用来循环访问关联的数据源的枚举数。 + + + 获取该实例所表示的集合中的数据的类型。 + 该实例所表示的集合中的数据的类型。 + + + 获取与该实例关联或者表示该实例的表达式目录树。 + 与该实例关联或者表示该实例的表达式目录树。 + + + 获取与该实例关联的查询提供程序。 + 与该实例关联的查询提供程序。 + + + 构造一个新的 对象,并将它与表示 数据集合的指定表达式目录树关联。 + 关联的 EnumerableQuery 对象。 + 要执行的表达式目录树。 + + 所表示的集合中的数据的类型。 + + + 构造一个新的 对象,并将它与表示 数据集合的指定表达式目录树关联。 + 关联的 对象。 + 表示 数据集合的表达式目录树。 + + + 在重写表达式后执行表达式,重写的目的是对无法通过 方法查询的任何可枚举数据源调用 方法,而不是调用 方法。 + 执行 后所得到的值。 + 要执行的表达式目录树。 + + 所表示的集合中的数据的类型。 + + + 在重写表达式后执行表达式,重写的目的是对无法通过 方法查询的任何可枚举数据源调用 方法,而不是调用 方法。 + 执行 后所得到的值。 + 要执行的表达式目录树。 + + + 返回可枚举集合的文本表示形式;如果该集合为 null,则返回与此实例关联的表达式树的文本表示形式。 + 可枚举集合的文本表示形式;如果该集合为 null,则为与此实例关联的表达式树的文本表示形式。 + + + 提供一组用于查询实现 的数据结构的 static(在 Visual Basic 中为 Shared)方法。 + + + 对序列应用累加器函数。 + 累加器的最终值。 + 要聚合的序列。 + 要应用于每个元素的累加器函数。 + + 中的元素的类型。 + + 为 null。 + + 中不包含任何元素。 + + + 对序列应用累加器函数。将指定的种子值用作累加器初始值。 + 累加器的最终值。 + 要聚合的序列。 + 累加器的初始值。 + 要对每个元素调用的累加器函数。 + + 中的元素的类型。 + 累加器值的类型。 + + 为 null。 + + + 对序列应用累加器函数。将指定的种子值用作累加器的初始值,并使用指定的函数选择结果值。 + 已转换的累加器最终值。 + 要聚合的序列。 + 累加器的初始值。 + 要对每个元素调用的累加器函数。 + 将累加器的最终值转换为结果值的函数。 + + 中的元素的类型。 + 累加器值的类型。 + 结果值的类型。 + + 为 null。 + + + 确定序列中的所有元素是否都满足条件。 + 如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true;否则为 false。 + 要测试其元素是否满足条件的序列。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 确定序列是否包含任何元素。 + 如果源序列包含任何元素,则为 true;否则为 false。 + 要检查是否为空的序列。 + + 中的元素的类型。 + + 为 null。 + + + 确定序列中的任何元素是否都满足条件。 + 如果源序列中的任何元素都通过指定谓词中的测试,则为 true;否则为 false。 + 要测试其元素是否满足条件的序列。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 将泛型 转换为泛型 + 一个 ,表示输入序列。 + 要转换的序列。 + + 中的元素的类型。 + + 为 null。 + + + 转换为 + 一个 ,表示输入序列。 + 要转换的序列。 + + 未为某些 实现 + + 为 null。 + + + 计算 值序列的平均值。 + 值序列的平均值。 + 要计算平均值的 值序列。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值。 + 值序列的平均值。 + 要计算平均值的 值序列。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值。 + 值序列的平均值。 + 要计算平均值的 值序列。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值。 + 值序列的平均值。 + 要计算平均值的 值序列。 + + 为 null。 + + 中不包含任何元素。 + + + 计算可以为 null 的 值序列的平均值。 + 值序列的平均值;如果 Source 序列为空或仅包含 null 值,则为 null。 + 要计算平均值的可以为 null 的 值序列。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值。 + 值序列的平均值;如果 Source 序列为空或仅包含 null 值,则为 null。 + 要计算平均值的可以为 null 的 值序列。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值。 + 值序列的平均值;如果 Source 序列为空或仅包含 null 值,则为 null。 + 要计算平均值的、可以为 null 的 值序列。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值。 + 值序列的平均值;如果 Source 序列为空或仅包含 null 值,则为 null。 + 要计算平均值的可以为 null 的 值序列。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值。 + 值序列的平均值;如果 Source 序列为空或仅包含 null 值,则为 null。 + 要计算平均值的可以为 null 的 值序列。 + + 为 null。 + + + 计算 值序列的平均值。 + 值序列的平均值。 + 要计算平均值的 值序列。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值。 + 用于计算平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + 中不包含任何元素。 + + + 计算 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + 中不包含任何元素。 + + + 计算可以为 null 的 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值;如果 序列为空或仅包含 null 值,则为 null。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值;如果 序列为空或仅包含 null 值,则为 null。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值;如果 序列为空或仅包含 null 值,则为 null。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值;如果 序列为空或仅包含 null 值,则为 null。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算可以为 null 的 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值;如果 序列为空或仅包含 null 值,则为 null。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算 值序列的平均值,该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 值序列的平均值。 + 要计算其平均值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + 中不包含任何元素。 + + + 的元素转换为指定的类型。 + 一个 ,包含被转换为指定类型的源序列中的每个元素。 + 包含要转换的元素的 。 + + 中的元素要转换成的类型。 + + 为 null。 + 序列中的元素不能强制转换为 类型。 + + + 连接两个序列。 + 一个 ,包含两个输入序列的连接元素。 + 要连接的第一个序列。 + 要与第一个序列连接的序列。 + 输入序列中的元素的类型。 + + 为 null。 + + + 通过使用默认的相等比较器确定序列是否包含指定的元素。 + 如果输入序列包含具有指定值的元素,则为 true;否则为 false。 + 要在其中定位 。 + 要在序列中定位的对象。 + + 中的元素的类型。 + + 为 null。 + + + 通过使用指定的 确定序列是否包含指定的元素。 + 如果输入序列包含具有指定值的元素,则为 true;否则为 false。 + 要在其中定位 。 + 要在序列中定位的对象。 + 用于比较值的 。 + + 中的元素的类型。 + + 为 null。 + + + 返回序列中的元素数量。 + 输入序列中的元素数量。 + 包含要计数的元素的 。 + + 中的元素的类型。 + + 为 null。 + + 中的元素数量大于 + + + 返回指定序列中满足条件的元素数量。 + 序列中满足谓词函数的条件的元素数量。 + 包含要进行计数的元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + 中的元素数量大于 + + + 返回指定序列的元素;如果序列为空,则返回单一实例集合中的类型参数的默认值。 + 用于在 为空的情况下包含 default() 的 ;否则为 + 用于在序列为空的情况下返回默认值的 。 + + 中的元素的类型。 + + 为 null。 + + + 返回指定序列中的元素;如果序列为空,则返回单一实例集合中的指定值。 + 为空的情况下包含 ;否则为 + 用于在序列为空的情况下返回指定值的 。 + 序列为空时要返回的值。 + + 中的元素的类型。 + + 为 null。 + + + 通过使用默认的相等比较器对值进行比较返回序列中的非重复元素。 + 包含 中的非重复元素的 + 要从中删除重复项的 。 + + 中的元素的类型。 + + 为 null。 + + + 通过使用指定的 对值进行比较返回序列中的非重复元素。 + 包含 中的非重复元素的 + 要从中删除重复项的 。 + 用于比较值的 。 + + 中的元素的类型。 + + 为 null。 + + + 返回序列中指定索引处的元素。 + + 中指定位置处的元素。 + 要从中返回元素的 。 + 要检索的从零开始的元素索引。 + + 中的元素的类型。 + + 为 null。 + + 小于零。 + + + 返回序列中指定索引处的元素;如果索引超出范围,则返回默认值。 + 如果 超出 的界限,则返回 default();否则返回 中指定位置处的元素。 + 要从中返回元素的 。 + 要检索的从零开始的元素索引。 + + 中的元素的类型。 + + 为 null。 + + + 通过使用默认的相等比较器对值进行比较生成两个序列的差集。 + 一个 ,包含两个序列的差集。 + 一个 ,将返回其不在 中的元素。 + 一个 ,其也出现在第一个序列中的元素将不会出现在返回的序列中。 + 输入序列中的元素的类型。 + + 为 null。 + + + 通过使用指定的 对值进行比较产生两个序列的差集。 + 一个 ,包含两个序列的差集。 + 一个 ,将返回其不在 中的元素。 + 一个 ,其也出现在第一个序列中的元素将不会出现在返回的序列中。 + 用于比较值的 。 + 输入序列中的元素的类型。 + + 为 null。 + + + 返回序列中的第一个元素。 + + 中的第一个元素。 + 要返回其第一个元素的 。 + + 中的元素的类型。 + + 为 null。 + 源序列为空。 + + + 返回序列中满足指定条件的第一个元素。 + 通过 中测试的 中的第一个元素。 + 要从中返回元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + 没有元素满足 中的条件。- 或 -源序列为空。 + + + 返回序列中的第一个元素;如果序列中不包含任何元素,则返回默认值。 + 如果 为空,则返回 default();否则返回 中的第一个元素。 + 要返回其第一个元素的 。 + + 中的元素的类型。 + + 为 null。 + + + 返回序列中满足指定条件的第一个元素,如果未找到这样的元素,则返回默认值。 + 如果 为空或没有元素通过 指定的测试,则返回 default(),否则返回 中通过 指定的测试的第一个元素。 + 要从中返回元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组。 + 在 C# 中为 IQueryable<IGrouping<TKey, TSource>>,或者在 Visual Basic 中为 IQueryable(Of IGrouping(Of TKey, TSource)),其中每个 对象都包含一个对象序列和一个键。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组,并使用指定的比较器对键进行比较。 + 在 C# 中为 IQueryable<IGrouping<TKey, TSource>>,或者在 Visual Basic 中为 IQueryable(Of IGrouping(Of TKey, TSource)),其中每个 都包含一个对象序列和一个键。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 一个用于对键进行比较的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组,并且通过使用指定的函数对每个组中的元素进行投影。 + 在 C# 中为 IQueryable<IGrouping<TKey, TElement>>,或在 Visual Basic 中为 IQueryable(Of IGrouping(Of TKey, TElement)),其中每个 都包含一个 类型的对象序列和一个键。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 用于将每个源元素映射到 中的元素的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + 每个 中的元素的类型。 + + 为 null。 + + + 对序列中的元素进行分组并且通过使用指定的函数对每组中的元素进行投影。通过使用指定的比较器对键值进行比较。 + 在 C# 中为 IQueryable<IGrouping<TKey, TElement>>,或在 Visual Basic 中为 IQueryable(Of IGrouping(Of TKey, TElement)),其中每个 都包含一个 类型的对象序列和一个键。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 用于将每个源元素映射到 中的元素的函数。 + 一个用于对键进行比较的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + 每个 中的元素的类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。通过使用指定的函数对每个组的元素进行投影。 + 一个 T:System.Linq.IQueryable`1,它具有 的类型参数,并且其中每个元素都表示对一个组及其键的投影。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 用于将每个源元素映射到 中的元素的函数。 + 用于从每个组中创建结果值的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + 每个 中的元素的类型。 + + 返回的结果值的类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。通过使用指定的比较器对键进行比较,并且通过使用指定的函数对每个组的元素进行投影。 + 一个 T:System.Linq.IQueryable`1,它具有 的类型参数,并且其中每个元素都表示对一个组及其键的投影。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 用于将每个源元素映射到 中的元素的函数。 + 用于从每个组中创建结果值的函数。 + 一个用于对键进行比较的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + 每个 中的元素的类型。 + + 返回的结果值的类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。 + 一个 T:System.Linq.IQueryable`1,它具有 的类型参数,并且其中每个元素都表示对一个组及其键的投影。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 用于从每个组中创建结果值的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 返回的结果值的类型。 + + 为 null。 + + + 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。通过使用指定的比较器对键进行比较。 + 一个 T:System.Linq.IQueryable`1,它具有 的类型参数,并且其中每个元素都表示对一个组及其键的投影。 + 要对其元素进行分组的 。 + 用于提取每个元素的键的函数。 + 用于从每个组中创建结果值的函数。 + 一个用于对键进行比较的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 返回的结果值的类型。 + + 为 null。 + + + 基于键相等对两个序列的元素进行关联并对结果进行分组。使用默认的相等比较器对键进行比较。 + 一个 ,包含通过对两个序列执行已分组的联接而获得的 类型的元素。 + 要联接的第一个序列。 + 要与第一个序列联接的序列。 + 用于从第一个序列的每个元素提取联接键的函数。 + 用于从第二个序列的每个元素提取联接键的函数。 + 用于从第一个序列的元素和第二个序列的匹配元素集合中创建结果元素的函数。 + 第一个序列中的元素的类型。 + 第二个序列中的元素的类型。 + 键选择器函数返回的键的类型。 + 结果元素的类型。 + + 为 null。 + + + 基于键相等对两个序列的元素进行关联并对结果进行分组。使用指定的 对键进行比较。 + 一个 ,包含通过对两个序列执行已分组的联接而获得的 类型的元素。 + 要联接的第一个序列。 + 要与第一个序列联接的序列。 + 用于从第一个序列的每个元素提取联接键的函数。 + 用于从第二个序列的每个元素提取联接键的函数。 + 用于从第一个序列的元素和第二个序列的匹配元素集合中创建结果元素的函数。 + 用于对键进行哈希处理和比较的比较器。 + 第一个序列中的元素的类型。 + 第二个序列中的元素的类型。 + 键选择器函数返回的键的类型。 + 结果元素的类型。 + + 为 null。 + + + 通过使用默认的相等比较器对值进行比较生成两个序列的交集。 + 一个包含两个序列的交集的序列。 + 一个序列,将返回其也出现在 中的非重复元素。 + 一个序列,将返回其也在第一个序列中出现的非重复元素。 + 输入序列中的元素的类型。 + + 为 null。 + + + 通过使用指定的 对值进行比较以生成两个序列的交集。 + 一个 ,它包含两个序列的交集。 + 一个 ,将返回其也出现在 中的非重复元素。 + 一个 ,将返回其也出现在第一个序列中的非重复元素。 + 用于比较值的 。 + 输入序列中的元素的类型。 + + 为 null。 + + + 基于匹配键对两个序列的元素进行关联。使用默认的相等比较器对键进行比较。 + 一个 ,具有通过对两个序列执行内部联接而获得的 类型的元素。 + 要联接的第一个序列。 + 要与第一个序列联接的序列。 + 用于从第一个序列的每个元素提取联接键的函数。 + 用于从第二个序列的每个元素提取联接键的函数。 + 用于从两个匹配元素创建结果元素的函数。 + 第一个序列中的元素的类型。 + 第二个序列中的元素的类型。 + 键选择器函数返回的键的类型。 + 结果元素的类型。 + + 为 null。 + + + 基于匹配键对两个序列的元素进行关联。使用指定的 对键进行比较。 + 一个 ,具有通过对两个序列执行内部联接而获得的 类型的元素。 + 要联接的第一个序列。 + 要与第一个序列联接的序列。 + 用于从第一个序列的每个元素提取联接键的函数。 + 用于从第二个序列的每个元素提取联接键的函数。 + 用于从两个匹配元素创建结果元素的函数。 + 一个 ,用于对键进行哈希处理和比较。 + 第一个序列中的元素的类型。 + 第二个序列中的元素的类型。 + 键选择器函数返回的键的类型。 + 结果元素的类型。 + + 为 null。 + + + 返回序列中的最后一个元素。 + 位于 中最后位置处的值。 + 要返回其最后一个元素的 。 + + 中的元素的类型。 + + 为 null。 + 源序列为空。 + + + 返回序列中满足指定条件的最后一个元素。 + + 中的最后一个元素,它通过了由 指定的测试。 + 要从中返回元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + 没有元素满足 中的条件。- 或 -源序列为空。 + + + 返回序列中的最后一个元素,如果序列中不包含任何元素,则返回默认值。 + 如果 为空,则返回 default();否则返回 中的最后一个元素。 + 要返回其最后一个元素的 。 + + 中的元素的类型。 + + 为 null。 + + + 返回序列中满足条件的最后一个元素;如果未找到这样的元素,则返回默认值。 + 如果 为空或没有元素通过谓词函数中的测试,则返回 default();否则,返回通过谓词函数中测试的 的最后一个元素。 + 要从中返回元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 返回一个 ,表示序列中的元素的总数量。 + + 中的元素的数量。 + 包含要进行计数的元素的 。 + + 中的元素的类型。 + + 为 null。 + 元素的数量超过 + + + 返回一个 ,它表示序列中满足条件的元素数量。 + + 中满足谓词函数的条件的元素数量。 + 包含要进行计数的元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + 匹配元素的数量超过 + + + 返回泛型 中的最大值。 + 序列中的最大值。 + 要确定最大值的值序列。 + + 中的元素的类型。 + + 为 null。 + + + 对泛型 的每个元素调用投影函数,并返回最大结果值。 + 序列中的最大值。 + 要确定最大值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数返回的值类型。 + + 为 null。 + + + 返回泛型 中的最小值。 + 序列中的最小值。 + 要确定最小值的值序列。 + + 中的元素的类型。 + + 为 null。 + + + 对泛型 的每个元素调用投影函数,并返回最小结果值。 + 序列中的最小值。 + 要确定最小值的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数返回的值类型。 + + 为 null。 + + + 根据指定类型筛选 的元素。 + 一个集合,包含 中的类型为 的元素。 + 要对其元素进行筛选的 。 + 筛选序列元素所根据的类型。 + + 为 null。 + + + 根据键按升序对序列的元素排序。 + 一个 ,根据键对其元素排序。 + 一个要排序的值序列。 + 用于从元素中提取键的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 使用指定的比较器按升序对序列的元素排序。 + 一个 ,根据键对其元素排序。 + 一个要排序的值序列。 + 用于从元素中提取键的函数。 + 一个用于比较键的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 根据键按降序对序列的元素排序。 + 一个 ,将根据键按降序对其元素进行排序。 + 一个要排序的值序列。 + 用于从元素中提取键的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 使用指定的比较器按降序对序列的元素排序。 + 一个 ,将根据键按降序对其元素进行排序。 + 一个要排序的值序列。 + 用于从元素中提取键的函数。 + 一个用于比较键的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 反转序列中元素的顺序。 + 一个 ,其元素以相反顺序对应于输入序列的元素。 + 要反转的值序列。 + + 中的元素的类型。 + + 为 null。 + + + 将序列中的每个元素投影到新表中。 + 一个 ,其元素为对 的每个元素调用投影函数的结果。 + 一个要投影的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数返回的值类型。 + + 为 null。 + + + 通过合并元素的索引将序列的每个元素投影到新表中。 + 一个 ,其元素为对 的每个元素调用投影函数的结果。 + 一个要投影的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数返回的值类型。 + + 为 null。 + + + 将序列的每个元素投影到一个 ,并对其中的每个元素调用结果选择器函数。每个中间序列的结果值都组合为一个一维序列,并将其返回。 + 一个 ,其元素是通过对 的每个元素调用一对多投影函数 ,然后将这些序列元素的每一个及其对应的 元素映射到结果元素中的结果。 + 一个要投影的值序列。 + 一个应用于输入序列的每个元素的投影函数。 + 一个应用于每个中间序列的每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数收集的中间元素类型。 + 结果序列的元素的类型。 + + 为 null。 + + + 将序列的每个元素投影到一个 ,并将结果序列组合为一个序列。 + 一个 ,其元素是对输入序列的每个元素调用一对多投影函数的结果。 + 一个要投影的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数返回的序列中的元素的类型。 + + 为 null。 + + + 将序列中的每个元素投影到一个 ,它合并了生成它的源元素的索引。对每个中间序列的每个元素调用结果选择器函数,并且将结果值合并为一个一维序列,并将其返回。 + 一个 ,其元素是通过对 的每个元素调用一对多投影函数 ,然后将这些序列元素的每一个及其对应的 元素映射到结果元素中的结果。 + 一个要投影的值序列。 + 要应用于输入序列的每个元素的投影函数;此函数的第二个参数表示源元素的索引。 + 一个应用于每个中间序列的每个元素的投影函数。 + + 中的元素的类型。 + 表示的函数收集的中间元素类型。 + 结果序列的元素的类型。 + + 为 null。 + + + 将序列的每个元素投影到一个 ,并将结果序列组合为一个序列。每个源元素的索引用于该元素的投影表。 + 一个 ,其元素是对输入序列的每个元素调用一对多投影函数的结果。 + 一个要投影的值序列。 + 要应用于每个元素的投影函数;此函数的第二个参数表示源元素的索引。 + + 中的元素的类型。 + 表示的函数返回的序列中的元素的类型。 + + 为 null。 + + + 通过使用默认的相等比较器比较元素以确定两个序列是否相等。 + 如果两个源序列的长度相等并且它们的对应元素也相等,则为 true;否则为 false。 + 一个 ,其元素用于与 中的元素进行比较。 + 一个 ,其元素用于与第一个序列中的元素进行比较。 + 输入序列中的元素的类型。 + + 为 null。 + + + 通过使用指定的 比较元素以确定两个序列是否相等。 + 如果两个源序列的长度相等并且它们的对应元素也相等,则为 true;否则为 false。 + 一个 ,其元素用于与 中的元素进行比较。 + 一个 ,其元素用于与第一个序列中的元素进行比较。 + 一个用于比较元素的 。 + 输入序列中的元素的类型。 + + 为 null。 + + + 返回序列的唯一元素;如果该序列并非恰好包含一个元素,则会引发异常。 + 输入序列的单个元素。 + 要返回其单个元素的 。 + + 中的元素的类型。 + + 为 null。 + + 具有多个元素。 + + + 返回序列中满足指定条件的唯一元素;如果有多个这样的元素存在,则会引发异常。 + 满足 中条件的输入序列中的单个元素。 + 要从中返回单个元素的 。 + 用于测试元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + 没有元素满足 中的条件。- 或 -多个元素满足 中的条件。- 或 -源序列为空。 + + + 返回序列中的唯一元素;如果该序列为空,则返回默认值;如果该序列包含多个元素,此方法将引发异常。 + 返回输入序列的单个元素;如果序列不包含任何元素,则返回 default()。 + 要返回其单个元素的 。 + + 中的元素的类型。 + + 为 null。 + + 具有多个元素。 + + + 返回序列中满足指定条件的唯一元素;如果这类元素不存在,则返回默认值;如果有多个元素满足该条件,此方法将引发异常。 + 返回满足 中条件的输入序列的单个元素;如果未找到这样的元素,则返回 default()。 + 要从中返回单个元素的 。 + 用于测试元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + 多个元素满足 中的条件。 + + + 跳过序列中指定数量的元素,然后返回剩余的元素。 + 一个 ,包含输入序列中指定索引后出现的元素。 + 要从中返回元素的 。 + 返回剩余元素前要跳过的元素数量。 + + 中的元素的类型。 + + 为 null。 + + + 只要满足指定的条件,就跳过序列中的元素,然后返回剩余元素。 + 一个 ,包含从未通过 指定测试的线性系列中的第一个元素开始的 中的元素。 + 要从中返回元素的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 只要满足指定的条件,就跳过序列中的元素,然后返回剩余元素。将在谓词函数的逻辑中使用元素的索引。 + 一个 ,包含从未通过 指定测试的线性系列中的第一个元素开始的 中的元素。 + 要从中返回元素的 。 + 用于测试每个元素是否满足条件的函数;此函数的第二个参数表示源元素的索引。 + + 中的元素的类型。 + + 为 null。 + + + 计算 值序列之和。 + 序列值之和。 + 一个要计算和的 值序列。 + + 为 null。 + 和大于 + + + 计算 值序列之和。 + 序列值之和。 + 一个要计算和的 值序列。 + + 为 null。 + + + 计算 值序列之和。 + 序列值之和。 + 一个要计算和的 值序列。 + + 为 null。 + 和大于 + + + 计算 值序列之和。 + 序列值之和。 + 一个要计算和的 值序列。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和。 + 序列值之和。 + 要计算和的可以为 null 的 值序列。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和。 + 序列值之和。 + 要计算和的可以为 null 的 值序列。 + + 为 null。 + + + 计算可以为 null 的 值序列之和。 + 序列值之和。 + 要计算和的可以为 null 的 值序列。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和。 + 序列值之和。 + 要计算和的可以为 null 的 值序列。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和。 + 序列值之和。 + 要计算和的可以为 null 的 值序列。 + + 为 null。 + + + 计算 值序列之和。 + 序列值之和。 + 一个要计算和的 值序列。 + + 为 null。 + + + 计算 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + 和大于 + + + 计算 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + 和大于 + + + 计算 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算可以为 null 的 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + 和大于 + + + 计算可以为 null 的 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 计算 值序列之和,而该序列是通过对输入序列中的每个元素调用投影函数而获得的。 + 投影值之和。 + 一个 类型的值序列。 + 要应用于每个元素的投影函数。 + + 中的元素的类型。 + + 为 null。 + + + 从序列的开头返回指定数量的连续元素。 + 一个 ,包含从 开始处的指定数量的元素。 + 要从其返回元素的序列。 + 要返回的元素数量。 + + 中的元素的类型。 + + 为 null。 + + + 只要满足指定的条件,就会返回序列的元素。 + 一个 ,包含不再通过由 指定测试的元素之前出现的输入序列中的元素。 + 要从其返回元素的序列。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 只要满足指定的条件,就会返回序列的元素。将在谓词函数的逻辑中使用元素的索引。 + 一个 ,包含不再通过由 指定测试的元素之前出现的输入序列中的元素。 + 要从其返回元素的序列。 + 用于测试每个元素是否满足条件的函数;此函数的第二个参数表示源序列中元素的索引。 + + 中的元素的类型。 + + 为 null。 + + + 根据某个键按升序对序列中的元素执行后续排序。 + 一个 ,根据键对其元素排序。 + 一个 ,包含要排序的元素。 + 用于从每个元素中提取键的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 使用指定的比较器按升序对序列中的元素执行后续排序。 + 一个 ,根据键对其元素排序。 + 一个 ,包含要排序的元素。 + 用于从每个元素中提取键的函数。 + 一个用于比较键的 。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 根据某个键按降序对序列中的元素执行后续排序。 + 一个 ,将根据键按降序对其元素进行排序。 + 一个 ,包含要排序的元素。 + 用于从每个元素中提取键的函数。 + + 中的元素的类型。 + 表示的函数返回的键类型。 + + 为 null。 + + + 使用指定的比较器按降序对序列中的元素执行后续排序。 + 一个集合,其中的元素是根据某个键按降序进行排序的。 + 一个 ,包含要排序的元素。 + 用于从每个元素中提取键的函数。 + 一个用于比较键的 。 + + 中的元素的类型。 + 函数返回的键的类型。 + + 为 null。 + + + 通过使用默认的相等比较器生成两个序列的并集。 + 一个 ,包含两个输入序列中的元素(重复元素除外)。 + 非重复元素组成合并运算的第一组的一个序列。 + 非重复元素组成合并运算的第二组的一个序列。 + 输入序列中的元素的类型。 + + 为 null。 + + + 通过使用指定的 生成两个序列的并集。 + 一个 ,包含两个输入序列中的元素(重复元素除外)。 + 非重复元素组成合并运算的第一组的一个序列。 + 非重复元素组成合并运算的第二组的一个序列。 + 用于比较值的 。 + 输入序列中的元素的类型。 + + 为 null。 + + + 基于谓词筛选值序列。 + 一个 ,包含满足由 指定的条件的输入序列中的元素。 + 要筛选的 。 + 用于测试每个元素是否满足条件的函数。 + + 中的元素的类型。 + + 为 null。 + + + 基于谓词筛选值序列。将在谓词函数的逻辑中使用每个元素的索引。 + 一个 ,包含满足由 指定的条件的输入序列中的元素。 + 要筛选的 。 + 用于测试每个元素是否满足条件的函数;此函数的第二个参数表示源序列中元素的索引。 + + 中的元素的类型。 + + 为 null。 + + + 通过使用指定的谓词函数合并两个序列。 + 一个 ,包含两个输入序列的已合并元素。 + 要合并的第一个序列。 + 要合并的第二个序列。 + 用于指定如何合并这两个序列的元素的函数。 + 第一个输入序列中的元素的类型。 + 第二个输入序列中的元素的类型。 + 结果序列的元素的类型。 + + 为 null。 + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/zh-hant/System.Linq.Queryable.xml b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/zh-hant/System.Linq.Queryable.xml new file mode 100644 index 0000000..2dd62e2 --- /dev/null +++ b/packages/System.Linq.Queryable.4.3.0/ref/netstandard1.0/zh-hant/System.Linq.Queryable.xml @@ -0,0 +1,1439 @@ + + + + System.Linq.Queryable + + + + 表示運算式樹狀架構,並且提供在重新撰寫後執行運算式樹狀架構的功能。 + + + 初始化 類別的新執行個體。 + + + 表示運算式樹狀架構,並且提供在重新撰寫後執行運算式樹狀架構的功能。 + 執行運算式樹狀架構所產生之值的資料型別。 + + + 初始化 類別的新執行個體。 + 與新執行個體關聯的運算式樹狀架構。 + + + 表示做為 資料來源的 + + + 初始化 類別的新執行個體。 + + + 表示做為 資料來源的 集合。 + 集合中的資料型別。 + + + 初始化 類別的新執行個體,並使其與 集合產生關聯。 + 與新執行個體關聯的集合。 + + + 初始化 類別的新執行個體,並使其與運算式樹狀架構產生關聯。 + 與新執行個體關聯的運算式樹狀架構。 + + + 傳回可以逐一查看關聯之 集合的列舉值,或者如果為 null,則逐一查看重新寫入運算式樹狀架構所產生的集合,做為 資料來源上的查詢並且執行。 + 可以用來逐一查看關聯之資料來源的列舉值。 + + + 傳回可以逐一查看關聯之 集合的列舉值,或者如果為 null,則逐一查看重新寫入運算式樹狀架構所產生的集合,做為 資料來源上的查詢並且執行。 + 可以用來逐一查看關聯之資料來源的列舉值。 + + + 取得此執行個體所代表之集合中的資料型別。 + 此執行個體所代表之集合中的資料型別。 + + + 取得與此執行個體關聯的或代表此執行個體的運算式樹狀架構。 + 與此執行個體關聯的或代表此執行個體的運算式樹狀架構。 + + + 取得與這個執行個體關聯的查詢提供者。 + 與這個執行個體關聯的查詢提供者。 + + + 建構新的 物件,並將其與指定的運算式樹狀架構 (表示資料的 集合) 建立關聯。 + 表示與 關聯的 EnumerableQuery 物件。 + 要執行的運算式樹狀架構。 + 所代表之集合中的資料型別。 + + + 建構新的 物件,並將其與指定的運算式樹狀架構 (表示資料的 集合) 建立關聯。 + 相關聯的 物件。 + 表示資料之 集合的運算式樹狀架構。 + + + 在無法以 方法查詢的可列舉資料來源上,將重新寫入運算式以呼叫 方法後,執行運算式,而不使用 方法。 + 執行 所產生的值。 + 要執行的運算式樹狀架構。 + 所代表之集合中的資料型別。 + + + 在無法以 方法查詢的可列舉資料來源上,將重新寫入運算式以呼叫 方法後,執行運算式,而不使用 方法。 + 執行 所產生的值。 + 要執行的運算式樹狀架構。 + + + 傳回可列舉集合的文字表示,如果為 null,則傳回與該執行個體關聯的運算式樹狀架構的文字表示。 + 可列舉集合的文字表示,如果為 null,則為與該執行個體關聯的運算式樹狀架構的文字表示。 + + + 提供一組 static (在 Visual Basic 中為 Shared) 方法,用於查詢實作 的資料結構。 + + + 將累加函式套用到序列上。 + 最終累積值。 + 所要彙總的序列。 + 要套用到每個項目的累加函式。 + + 之項目的型別。 + + 為 null。 + + 沒有包含任何項目。 + + + 將累加函式套用到序列上。使用指定的初始值做為初始累加值。 + 最終累積值。 + 所要彙總的序列。 + 初始累積值。 + 要在每個項目上叫用的累加函式。 + + 之項目的型別。 + 累積值的型別。 + + 為 null。 + + + 將累加函式套用到序列上。使用指定的值做為初始累加值,並使用指定的函式來選取結果值。 + 轉換後的最終累加值。 + 所要彙總的序列。 + 初始累積值。 + 要在每個項目上叫用的累加函式。 + 用來將最終累加值轉換成結果值的函式。 + + 之項目的型別。 + 累積值的型別。 + 結果值的型別。 + + 為 null。 + + + 判斷序列的所有項目是否全都符合條件。 + 如果來源序列的每個項目都通過以指定之述詞 (Predicate) 進行的測試,或序列是空的,則為 true,否則為 false。 + 要測試其項目是否符合條件的序列。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 判斷序列是否包含任何項目。 + 如果來源序列包含任何項目,則為 true,否則為 false。 + 要檢查是否為空白的序列。 + + 之項目的型別。 + + 為 null。 + + + 判斷序列的任何項目是否符合條件。 + 如果來源序列中的任何項目通過以指定之述詞進行的測試,則為 true,否則為 false。 + 要測試其項目是否符合條件的序列。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 將泛型 轉換成泛型 + 代表輸入序列的 + 所要轉換的序列。 + + 之項目的型別。 + + 為 null。 + + + 轉換成 + 代表輸入序列的 + 所要轉換的序列。 + + 不會針對某些 實作 + + 為 null。 + + + 計算 值序列的平均值。 + 值序列的平均。 + 要計算平均值的 值序列。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算 值序列的平均值。 + 值序列的平均。 + 要計算平均值的 值序列。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算 值序列的平均值。 + 值序列的平均。 + 要計算平均值的 值序列。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算 值序列的平均值。 + 值序列的平均。 + 要計算平均值的 值序列。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算可為 Null 之 值序列的平均值。 + 值序列的平均值;如果來源序列是空的或是只包含 null 值,則為 null。 + 要計算平均值之可為 Null 的 值序列。 + + 為 null。 + + + 計算可為 Null 之 值序列的平均值。 + 值序列的平均值;如果來源序列是空的或是只包含 null 值,則為 null。 + 要計算平均值之可為 Null 的 值序列。 + + 為 null。 + + + 計算可為 Null 之 值序列的平均值。 + 值序列的平均值;如果來源序列是空的或是只包含 null 值,則為 null。 + 要計算平均值之可為 Null 的 值序列。 + + 為 null。 + + + 計算可為 Null 之 值序列的平均值。 + 值序列的平均值;如果來源序列是空的或是只包含 null 值,則為 null。 + 要計算平均值之可為 Null 的 值序列。 + + 為 null。 + + + 計算可為 Null 之 值序列的平均值。 + 值序列的平均值;如果來源序列是空的或是只包含 null 值,則為 null。 + 要計算平均值之可為 Null 的 值序列。 + + 為 null。 + + + 計算 值序列的平均值。 + 值序列的平均。 + 要計算平均值的 值序列。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的平均值。 + 值序列的平均。 + 用來計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的平均值。 + 值序列的平均。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的平均值。 + 值序列的平均。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的平均值。 + 值序列的平均。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + 沒有包含任何項目。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的平均值。 + 值序列的平均值;如果 序列是空的或是只包含 null 值,則為 null。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的平均值。 + 值序列的平均值;如果 序列是空的或是只包含 null 值,則為 null。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的平均值。 + 值序列的平均值;如果 序列是空的或是只包含 null 值,則為 null。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的平均值。 + 值序列的平均值;如果 序列是空的或是只包含 null 值,則為 null。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的平均值。 + 值序列的平均值;如果 序列是空的或是只包含 null 值,則為 null。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的平均值。 + 值序列的平均。 + 要計算平均值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + 沒有包含任何項目。 + + + 的項目轉換成指定的型別。 + + ,其中包含已轉換成指定之型別的每個來源序列項目。 + 包含要轉換之項目的 。 + 要將 之項目轉換成的型別。 + + 為 null。 + 無法將序列中的項目轉換為型別 + + + 串連兩個序列。 + + ,其中包含兩個輸入序列的串連項目。 + 要串連的第一個序列。 + 要串連到第一個序列的序列。 + 輸入序列的項目之型別。 + + 為 null。 + + + 使用預設的相等比較子 (Comparer) 來判斷序列是否包含指定的項目。 + 如果輸入序列包含具有指定值的項目,則為 true,否則為 false。 + 要在其中尋找 。 + 要在序列中尋找的物件。 + + 之項目的型別。 + + 為 null。 + + + 使用指定的 來判斷序列是否包含指定的項目。 + 如果輸入序列包含具有指定值的項目,則為 true,否則為 false。 + 要在其中尋找 。 + 要在序列中尋找的物件。 + 用來比較值的 。 + + 之項目的型別。 + + 為 null。 + + + 傳回序列中的項目數。 + 輸入序列中的項目數目。 + 包含要計算之項目的 。 + + 之項目的型別。 + + 為 null。 + + 中的項目數目大於 + + + 傳回指定之序列中符合條件的項目數目。 + 序列中符合述詞函式之條件的項目數目。 + 包含要計算之項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + 中的項目數目大於 + + + 傳回指定之序列的項目;如果序列是空的,則傳回單一集合中型別參數的預設值。 + 如果 是空的,則為包含 default() 的 ,否則為 + 在空白時,要傳回預設值的 。 + + 之項目的型別。 + + 為 null。 + + + 傳回指定之序列的項目;如果序列是空的,則傳回單一集合中型別參數的預設值。 + 如果 是空的,則為包含 ,否則為 + 在空白時,要傳回指定之值的 。 + 在序列空白時所要傳回的值。 + + 之項目的型別。 + + 為 null。 + + + 使用預設的相等比較子來比較值,以便從序列傳回獨特的項目。 + + ,其中包含來自 的獨特項目。 + 要從中移除重複項目的 。 + + 之項目的型別。 + + 為 null。 + + + 使用指定的 來比較值,以便從序列傳回獨特的項目。 + + ,其中包含來自 的獨特項目。 + 要從中移除重複項目的 。 + 用來比較值的 。 + + 之項目的型別。 + + 為 null。 + + + 傳回位於序列中指定索引處的項目。 + 位於 中指定之位置的項目。 + 傳回項目的 。 + 要擷取的項目之以零起始索引。 + + 之項目的型別。 + + 為 null。 + + 小於零。 + + + 傳回位於序列中指定索引處的項目;如果索引超出範圍,則傳回預設值。 + 如果 超出 的範圍,則為 default(),否則為位於 中指定索引處的項目。 + 傳回項目的 。 + 要擷取的項目之以零起始索引。 + + 之項目的型別。 + + 為 null。 + + + 使用預設相等比較子來比較值,以便產生兩個序列的差異。 + + ,其中包含兩個序列的差異。 + + ,其項目若未同時存在 中,便會傳回這些項目。 + + ,其項目若同時出現在第一個序列中,則不會出現在傳回的序列中。 + 輸入序列的項目之型別。 + + 為 null。 + + + 使用指定的 來比較值,以便產生兩個序列的差異。 + + ,其中包含兩個序列的差異。 + + ,其項目若未同時存在 中,便會傳回這些項目。 + + ,其項目若同時出現在第一個序列中,則不會出現在傳回的序列中。 + 用來比較值的 。 + 輸入序列的項目之型別。 + + 為 null。 + + + 傳回序列的第一個項目。 + + 中的第一個項目。 + 要傳回第一個項目的 。 + + 之項目的型別。 + + 為 null。 + 來源序列為空。 + + + 傳回序列中符合指定之條件的第一個項目。 + + 中通過 之測試的第一個項目。 + 傳回項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + 沒有任何項目符合 中的條件。-或-來源序列為空。 + + + 傳回序列的第一個項目;如果序列中沒有包含任何項目,則傳回預設值。 + 如果 是空的,則為 default(),否則為 中的第一個項目。 + 要傳回第一個項目的 。 + + 之項目的型別。 + + 為 null。 + + + 傳回序列中符合指定之條件的第一個項目;如果找不到這類項目,則傳回預設值。 + 如果 是空的,或是沒有任何項目通過 所指定的測試,則為 default(),否則為 中通過 指定之測試的第一個項目。 + 傳回項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 依據指定的索引鍵選擇器函式來群組序列的項目。 + 在 C# 中為 IQueryable<IGrouping<TKey, TSource>>,而在 Visual Basic 中則為 IQueryable(Of IGrouping(Of TKey, TSource)),其中 物件包含物件和索引鍵的序列。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 依據指定的索引鍵選取器函式來群組序列的項目,並使用指定的比較子來比較索引鍵。 + 在 C# 中為 IQueryable<IGrouping<TKey, TSource>>,而在 Visual Basic 中則為 IQueryable(Of IGrouping(Of TKey, TSource)),其中 包含物件和索引鍵的序列。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 依據指定的索引鍵選取器函式來群組序列的項目,並使用指定的函式來投影每個群組的項目。 + 在 C# 中為 IQueryable<IGrouping<TKey, TElement>>,而在 Visual Basic 中則為 IQueryable(Of IGrouping(Of TKey, TElement)),其中每個 都包含型別 之物件的序列和索引鍵。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來將每個來源項目對應至 之項目的函式。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + 每個 中的項目型別。 + + 為 null。 + + + 使用指定的函式來群組序列的項目並投影每個群組的項目。索引鍵值是使用指定的比較子來進行比較。 + 在 C# 中為 IQueryable<IGrouping<TKey, TElement>>,而在 Visual Basic 中則為 IQueryable(Of IGrouping(Of TKey, TElement)),其中每個 都包含型別 之物件的序列和索引鍵。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來將每個來源項目對應至 之項目的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + 每個 中的項目型別。 + + 為 null。 + + + 依據指定的索引鍵選取器函式來群組序列的項目,並從每個群組及其索引鍵建立結果值。每個群組的項目都是利用指定的函式進行投影。 + T:System.Linq.IQueryable`1,其具有 的型別引數,而且其中每個項目都代表群組及其索引鍵的投影。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來將每個來源項目對應至 之項目的函式。 + 用來從各個群組建立結果值的函式。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + 每個 中的項目型別。 + + 所傳回之結果值的型別。 + + 為 null。 + + + 依據指定的索引鍵選取器函式來群組序列的項目,並從每個群組及其索引鍵建立結果值。索引鍵是使用指定的比較子來進行比較,而每個群組的項目則都是利用指定的函式進行投影。 + T:System.Linq.IQueryable`1,其具有 的型別引數,而且其中每個項目都代表群組及其索引鍵的投影。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來將每個來源項目對應至 之項目的函式。 + 用來從各個群組建立結果值的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + 每個 中的項目型別。 + + 所傳回之結果值的型別。 + + 為 null。 + + + 依據指定的索引鍵選取器函式來群組序列的項目,並從每個群組及其索引鍵建立結果值。 + T:System.Linq.IQueryable`1,其具有 的型別引數,而且其中每個項目都代表群組及其索引鍵的投影。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來從各個群組建立結果值的函式。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + + 所傳回之結果值的型別。 + + 為 null。 + + + 依據指定的索引鍵選取器函式來群組序列的項目,並從每個群組及其索引鍵建立結果值。索引鍵是使用指定的比較子來進行比較。 + T:System.Linq.IQueryable`1,其具有 的型別引數,而且其中每個項目都代表群組及其索引鍵的投影。 + 要群組其項目的 。 + 用來擷取各項目之索引鍵的函式。 + 用來從各個群組建立結果值的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 中表示之函式所傳回索引鍵的型別。 + + 所傳回之結果值的型別。 + + 為 null。 + + + 根據索引鍵相等與否,將兩個序列的項目相互關聯,並群組產生的結果。預設的相等比較子是用於比較索引鍵。 + + ,其中包含透過對兩個序列執行群組聯結所取得之型別 的項目。 + 要聯結的第一個序列。 + 要加入第一個序列的序列。 + 用來從第一個序列各個項目擷取聯結索引鍵的函式。 + 用來從第二個序列各個項目擷取聯結索引鍵的函式。 + 函式,用來從第一個序列的項目以及第二個序列的相符項目集合建立結果項目。 + 第一個序列的項目之型別。 + 第二個序列的項目之型別。 + 索引鍵選取器函式所傳回的索引鍵之型別。 + 結果項目的型別。 + + 為 null。 + + + 根據索引鍵相等與否,將兩個序列的項目相互關聯,並群組產生的結果。指定的 是用於比較索引鍵。 + + ,其中包含透過對兩個序列執行群組聯結所取得之型別 的項目。 + 要聯結的第一個序列。 + 要加入第一個序列的序列。 + 用來從第一個序列各個項目擷取聯結索引鍵的函式。 + 用來從第二個序列各個項目擷取聯結索引鍵的函式。 + 函式,用來從第一個序列的項目以及第二個序列的相符項目集合建立結果項目。 + 用來雜湊及比較索引鍵的比較子。 + 第一個序列的項目之型別。 + 第二個序列的項目之型別。 + 索引鍵選取器函式所傳回的索引鍵之型別。 + 結果項目的型別。 + + 為 null。 + + + 使用預設相等比較子來比較值,以便產生兩個序列的交集。 + 包含兩個序列之交集的序列。 + 傳回其獨特項目同時出現在 中的序列。 + 傳回其獨特項目同時出現在第一個序列中的序列。 + 輸入序列的項目之型別。 + + 為 null。 + + + 使用指定的 來比較值,以便產生兩個序列的交集。 + + ,其中包含兩個序列的交集。 + 傳回其獨特項目同時出現在 中的 。 + 傳回其獨特項目同時出現在第一個序列中的 。 + 用來比較值的 。 + 輸入序列的項目之型別。 + + 為 null。 + + + 根據相符索引鍵,將兩個序列的項目相互關聯。預設的相等比較子是用於比較索引鍵。 + + ,其具有透過對兩個序列執行內部聯結所取得之型別 的項目。 + 要聯結的第一個序列。 + 要加入第一個序列的序列。 + 用來從第一個序列各個項目擷取聯結索引鍵的函式。 + 用來從第二個序列各個項目擷取聯結索引鍵的函式。 + 用來從兩個相符項目建立結果項目的函式。 + 第一個序列的項目之型別。 + 第二個序列的項目之型別。 + 索引鍵選取器函式所傳回的索引鍵之型別。 + 結果項目的型別。 + + 為 null。 + + + 根據相符索引鍵,將兩個序列的項目相互關聯。指定的 是用於比較索引鍵。 + + ,其具有透過對兩個序列執行內部聯結所取得之型別 的項目。 + 要聯結的第一個序列。 + 要加入第一個序列的序列。 + 用來從第一個序列各個項目擷取聯結索引鍵的函式。 + 用來從第二個序列各個項目擷取聯結索引鍵的函式。 + 用來從兩個相符項目建立結果項目的函式。 + 用來雜湊及比較索引鍵的 。 + 第一個序列的項目之型別。 + 第二個序列的項目之型別。 + 索引鍵選取器函式所傳回的索引鍵之型別。 + 結果項目的型別。 + + 為 null。 + + + 傳回序列中的最後一個項目。 + 位於 中最後一個位置的值。 + 要傳回最後一個項目的 。 + + 之項目的型別。 + + 為 null。 + 來源序列為空。 + + + 傳回序列中符合指定之條件的最後一個項目。 + + 中通過 指定之測試的最後一個項目。 + 傳回項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + 沒有任何項目符合 中的條件。-或-來源序列為空。 + + + 傳回序列中的最後一個項目;如果序列中沒有包含任何項目,則傳回預設值。 + 如果 是空的,則為 default(),否則為 中的最後一個項目。 + 要傳回最後一個項目的 。 + + 之項目的型別。 + + 為 null。 + + + 傳回序列中符合條件的最後一個項目;如果找不到這類項目,則傳回預設值。 + 如果 是空的,或是沒有任何項目通過述詞函式中的測試,則為 default(),否則為 中通過述詞函式之測試的最後一個項目。 + 傳回項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 傳回代表序列中項目總數的 + + 中的項目數目。 + 包含要計算之項目的 。 + + 之項目的型別。 + + 為 null。 + 項目數目超出 + + + 傳回 ,其代表序列中符合條件的項目數目。 + + 中符合述詞函式之條件的項目數目。 + 包含要計算之項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + 符合的項目數目超出 + + + 傳回泛型 中的最大值。 + 序列中的最大值。 + 要判斷最大值的值序列。 + + 之項目的型別。 + + 為 null。 + + + 對泛型 的每個項目叫用投影函式,並傳回最大的結果值。 + 序列中的最大值。 + 要判斷最大值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所傳回值的型別。 + + 為 null。 + + + 傳回泛型 的最小值。 + 序列中的最小值。 + 要判斷最小值的值序列。 + + 之項目的型別。 + + 為 null。 + + + 對泛型 的每個項目叫用投影函式,並傳回最小的結果值。 + 序列中的最小值。 + 要判斷最小值的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所傳回值的型別。 + + 為 null。 + + + 根據指定的型別來篩選 的項目。 + 集合,其中包含 中型別為 的項目。 + 要篩選其項目的 。 + 用來做為序列項目之篩選依據的型別。 + + 為 null。 + + + 依據索引鍵,按遞增順序排序序列中的項目。 + 依據索引鍵排序其項目的 + 要排序的值序列。 + 用來從項目擷取索引鍵的函式。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 使用指定的比較子,依遞增順序排序序列中的項目。 + 依據索引鍵排序其項目的 + 要排序的值序列。 + 用來從項目擷取索引鍵的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 依據索引鍵,按遞減順序排序序列中的項目。 + 依據索引鍵按遞減順序排序其項目的 + 要排序的值序列。 + 用來從項目擷取索引鍵的函式。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 使用指定的比較子,依遞減順序排序序列中的項目。 + 依據索引鍵按遞減順序排序其項目的 + 要排序的值序列。 + 用來從項目擷取索引鍵的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 反轉序列中項目的排序方向。 + 其項目對應於輸入序列中反向排序之項目的 + 要反轉方向的值序列。 + + 之項目的型別。 + + 為 null。 + + + 將序列的每一個項目規劃成一個新的表單。 + + ,其項目為在 各個項目上叫用投影函式的結果。 + 要投影的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所傳回值的型別。 + + 為 null。 + + + 透過加入項目的索引,將序列的每個項目投影成新的表單。 + + ,其項目為在 各個項目上叫用投影函式的結果。 + 要投影的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所傳回值的型別。 + + 為 null。 + + + 將序列的每個項目投影成 ,並在其中的每個項目上叫用結果選取器函式。每個中繼序列產生的值都會合併成單一的一維序列,然後再傳回。 + + ,其項目是執行下列動作後所產生的結果:對 的各個項目叫用一對多投影函式 ,然後再將每個序列項目及其對應之 項目對應到結果項目。 + 要投影的值序列。 + 要套用到輸入序列中各個項目的投影函式。 + 要套用到各中繼序列之各個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所收集之中繼項目的型別。 + 產生的序列之項目型別。 + + 為 null。 + + + 將序列的每個項目都投影成 ,並將產生的序列合併成一個序列。 + + ,其項目是對輸入序列中各個項目叫用一對多投影函式後所產生的結果。 + 要投影的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所傳回序列之項目的型別。 + + 為 null。 + + + 將序列的每個項目都投影成 ,以合併產生該項目之來源項目的索引。接著對各中繼序列的每個項目叫用結果選取器函式,然後將產生的值合併成單一的一維序列並傳回。 + + ,其項目是執行下列動作後所產生的結果:對 的各個項目叫用一對多投影函式 ,然後再將每個序列項目及其對應之 項目對應到結果項目。 + 要投影的值序列。 + 要套用到輸入序列每個項目的投影函式;此函式的第二個參數代表來源項目的索引。 + 要套用到各中繼序列之各個項目的投影函式。 + + 之項目的型別。 + + 表示之函式所收集之中繼項目的型別。 + 產生的序列之項目型別。 + + 為 null。 + + + 將序列的每個項目都投影成 ,並將產生的序列合併成一個序列。各來源項目的索引是在該項目的投影表單中使用。 + + ,其項目是對輸入序列中各個項目叫用一對多投影函式後所產生的結果。 + 要投影的值序列。 + 要套用到每個項目的投影函式;此函式的第二個參數代表來源項目的索引。 + + 之項目的型別。 + + 表示之函式所傳回序列之項目的型別。 + + 為 null。 + + + 使用預設相等比較子來比較項目,以判斷兩個序列是否相等。 + 如果兩個來源序列的長度相同,而且其對應項目比較結果相同,則為 true,否則為 false。 + + ,其項目要與 的項目比較。 + + ,其項目要與第一個序列的項目比較。 + 輸入序列的項目之型別。 + + 為 null。 + + + 使用指定的 來比較項目,以判斷兩個序列是否相等。 + 如果兩個來源序列的長度相同,而且其對應項目比較結果相同,則為 true,否則為 false。 + + ,其項目要與 的項目比較。 + + ,其項目要與第一個序列的項目比較。 + 用來比較項目的 。 + 輸入序列的項目之型別。 + + 為 null。 + + + 傳回序列的唯一一個項目,如果序列中不是正好一個項目,則擲回例外狀況。 + 輸入序列的單一項目。 + 要傳回單一項目的 。 + + 之項目的型別。 + + 為 null。 + + 具有多個項目。 + + + 傳回序列中符合指定之條件的唯一一個項目,如果有一個以上這類項目,則擲回例外狀況。 + 輸入序列中符合 之條件的單一項目。 + 要傳回單一項目的來源 。 + 用來測試項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + 沒有任何項目符合 中的條件。-或-超過一個項目符合 中的條件。-或-來源序列為空。 + + + 傳回序列的唯一一個項目,如果序列是空白,則為預設值,如果序列中有一個以上的項目,這個方法就會擲回例外狀況。 + 輸入序列的單一項目;如果序列沒有包含任何項目,則為 default()。 + 要傳回單一項目的 。 + + 之項目的型別。 + + 為 null。 + + 具有多個項目。 + + + 傳回序列中符合指定之條件的唯一一個項目,如果沒有這類項目,則為預設值,如果有一個以上的項目符合條件,這個方法就會擲回例外狀況。 + 輸入序列中符合 中條件的單一項目;如果找不到這類項目,則為 default()。 + 要傳回單一項目的來源 。 + 用來測試項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + 超過一個項目符合 中的條件。 + + + 略過序列中指定的項目數目,然後傳回其餘項目。 + + ,其中包含出現在輸入序列中指定之索引後面的項目。 + 傳回項目的 。 + 傳回其餘項目之前要略過的項目數目。 + + 之項目的型別。 + + 為 null。 + + + 只要指定的條件為 true,便略過序列中的項目,然後傳回其餘項目。 + + ,其中包含的項目位於 ,而且是從沒有通過 所指定之測試的線性系列中第一個項目開始。 + 傳回項目的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 只要指定的條件為 true,便略過序列中的項目,然後傳回其餘項目。項目的索引是用於述詞功能的邏輯中。 + + ,其中包含的項目位於 ,而且是從沒有通過 所指定之測試的線性系列中第一個項目開始。 + 傳回項目的 。 + 用來測試各項目是否符合條件的函式;此函式的第二個參數代表來源項目的索引。 + + 之項目的型別。 + + 是 null。 + + + 計算 值序列的總和。 + 序列中值的總合。 + 要計算總和的 值序列。 + + 為 null。 + 總和大於 + + + 計算 值序列的總和。 + 序列中值的總合。 + 要計算總和的 值序列。 + + 為 null。 + + + 計算 值序列的總和。 + 序列中值的總合。 + 要計算總和的 值序列。 + + 為 null。 + 總和大於 + + + 計算 值序列的總和。 + 序列中值的總合。 + 要計算總和的 值序列。 + + 為 null。 + 總和大於 + + + 計算可為 Null 之 值序列的總和。 + 序列中值的總合。 + 要計算總和之可為 Null 的 值序列。 + + 為 null。 + 總和大於 + + + 計算可為 Null 之 值序列的總和。 + 序列中值的總合。 + 要計算總和之可為 Null 的 值序列。 + + 為 null。 + + + 計算可為 Null 之 值序列的總和。 + 序列中值的總合。 + 要計算總和之可為 Null 的 值序列。 + + 為 null。 + 總和大於 + + + 計算可為 Null 之 值序列的總和。 + 序列中值的總合。 + 要計算總和之可為 Null 的 值序列。 + + 為 null。 + 總和大於 + + + 計算可為 Null 之 值序列的總和。 + 序列中值的總合。 + 要計算總和之可為 Null 的 值序列。 + + 為 null。 + + + 計算 值序列的總和。 + 序列中值的總合。 + 要計算總和的 值序列。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + 總和大於 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + 總和大於 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + 總和大於 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + 總和大於 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + 總和大於 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + 總和大於 + + + 計算在輸入序列中各項目上叫用投影函式後所取得可為 Null 之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 計算在輸入序列中各項目上叫用投影函式後所取得之 值序列的總和。 + 預計值的總合。 + 型別 的值序列。 + 要套用到每個項目的投影函式。 + + 之項目的型別。 + + 為 null。 + + + 從序列開頭傳回指定的連續項目數目。 + + ,其中包含來自 開頭的指定項目數目。 + 傳回項目的序列。 + 要傳回的項目數目。 + + 之項目的型別。 + + 為 null。 + + + 只要指定的條件為 true,就會傳回序列中的項目。 + + ,其中包含輸入序列中的項目,而這些項目出現在已無法通過 所指定之測試的項目前面。 + 傳回項目的序列。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 只要指定的條件為 true,就會傳回序列中的項目。項目的索引是用於述詞功能的邏輯中。 + + ,其中包含輸入序列中的項目,而這些項目出現在已無法通過 所指定之測試的項目前面。 + 傳回項目的序列。 + 用來測試各項目是否符合條件的函式;此函式的第二個參數代表來源序列中項目的索引。 + + 之項目的型別。 + + 是 null。 + + + 依據索引鍵,按遞增順序執行序列中項目的後續排序作業。 + 依據索引鍵排序其項目的 + 包含要排序之項目的 。 + 用來從各個項目擷取索引鍵的函式。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 使用指定的比較子,依遞增順序執行序列中項目的後續排序作業。 + 依據索引鍵排序其項目的 + 包含要排序之項目的 。 + 用來從各個項目擷取索引鍵的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 依據索引鍵,按遞減順序執行序列中項目的後續排序作業。 + 依據索引鍵按遞減順序排序其項目的 + 包含要排序之項目的 。 + 用來從各個項目擷取索引鍵的函式。 + + 之項目的型別。 + + 表示之函式所傳回索引鍵的型別。 + + 為 null。 + + + 使用指定的比較子,依遞減順序執行序列中項目的後續排序作業。 + 依據索引鍵按遞減順序排序其項目的集合。 + 包含要排序之項目的 。 + 用來從各個項目擷取索引鍵的函式。 + 用來比較索引鍵的 。 + + 之項目的型別。 + + 函式所傳回索引鍵的型別。 + + 為 null。 + + + 使用預設相等比較值來比較值,以便產生兩個序列的集合等位。 + + ,其中包含來自兩個輸入序列的項目,但不包括重複的項目。 + 序列,其獨特項目構成等位作業的第一個集合。 + 序列,其獨特項目構成等位作業的第二個集合。 + 輸入序列的項目之型別。 + + 為 null。 + + + 使用指定的 產生兩個序列的集合等位。 + + ,其中包含來自兩個輸入序列的項目,但不包括重複的項目。 + 序列,其獨特項目構成等位作業的第一個集合。 + 序列,其獨特項目構成等位作業的第二個集合。 + 用來比較值的 。 + 輸入序列的項目之型別。 + + 為 null。 + + + 根據述詞來篩選值序列。 + + ,其中包含輸入序列中符合 指定之條件的項目。 + 要篩選的 。 + 用來測試每個項目是否符合條件的函式。 + + 之項目的型別。 + + 是 null。 + + + 根據述詞來篩選值序列。述詞函式的邏輯中使用各項目的索引。 + + ,其中包含輸入序列中符合 指定之條件的項目。 + 要篩選的 。 + 用來測試各項目是否符合條件的函式;此函式的第二個參數代表來源序列中項目的索引。 + + 之項目的型別。 + + 是 null。 + + + 使用指定的述詞函式來合併兩個序列。 + + ,其中包含兩個輸入序列的合併項目。 + 要合併的第一個序列。 + 要合併的第二個序列。 + 指定如何從兩個序列合併項目的函式。 + 第一個輸入序列的項目型別。 + 第二個輸入序列的項目型別。 + 結果序列的項目型別。 + + 為 null。 + + + \ No newline at end of file diff --git a/packages/System.Linq.Queryable.4.3.0/ref/portable-net45+win8+wp8+wpa81/_._ b/packages/System.Linq.Queryable.4.3.0/ref/portable-net45+win8+wp8+wpa81/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/ref/win8/_._ b/packages/System.Linq.Queryable.4.3.0/ref/win8/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/ref/wp80/_._ b/packages/System.Linq.Queryable.4.3.0/ref/wp80/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/ref/wpa81/_._ b/packages/System.Linq.Queryable.4.3.0/ref/wpa81/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/ref/xamarinios10/_._ b/packages/System.Linq.Queryable.4.3.0/ref/xamarinios10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/ref/xamarinmac20/_._ b/packages/System.Linq.Queryable.4.3.0/ref/xamarinmac20/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/ref/xamarintvos10/_._ b/packages/System.Linq.Queryable.4.3.0/ref/xamarintvos10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Linq.Queryable.4.3.0/ref/xamarinwatchos10/_._ b/packages/System.Linq.Queryable.4.3.0/ref/xamarinwatchos10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/X.PagedList.7.1.0/X.PagedList.7.1.0.nupkg b/packages/X.PagedList.7.1.0/X.PagedList.7.1.0.nupkg new file mode 100644 index 0000000..7d592bd Binary files /dev/null and b/packages/X.PagedList.7.1.0/X.PagedList.7.1.0.nupkg differ diff --git a/packages/X.PagedList.7.1.0/lib/net452/X.PagedList.dll b/packages/X.PagedList.7.1.0/lib/net452/X.PagedList.dll new file mode 100644 index 0000000..93c4d53 Binary files /dev/null and b/packages/X.PagedList.7.1.0/lib/net452/X.PagedList.dll differ diff --git a/packages/X.PagedList.7.1.0/lib/netstandard1.4/X.PagedList.dll b/packages/X.PagedList.7.1.0/lib/netstandard1.4/X.PagedList.dll new file mode 100644 index 0000000..f509246 Binary files /dev/null and b/packages/X.PagedList.7.1.0/lib/netstandard1.4/X.PagedList.dll differ diff --git a/packages/X.PagedList.Mvc.7.1.1/X.PagedList.Mvc.7.1.1.nupkg b/packages/X.PagedList.Mvc.7.1.1/X.PagedList.Mvc.7.1.1.nupkg new file mode 100644 index 0000000..e5634e3 Binary files /dev/null and b/packages/X.PagedList.Mvc.7.1.1/X.PagedList.Mvc.7.1.1.nupkg differ diff --git a/packages/X.PagedList.Mvc.7.1.1/lib/net452/X.PagedList.Mvc.dll b/packages/X.PagedList.Mvc.7.1.1/lib/net452/X.PagedList.Mvc.dll new file mode 100644 index 0000000..0a2614b Binary files /dev/null and b/packages/X.PagedList.Mvc.7.1.1/lib/net452/X.PagedList.Mvc.dll differ diff --git a/packages/cldrjs.0.5.0/cldrjs.0.5.0.nupkg b/packages/cldrjs.0.5.0/cldrjs.0.5.0.nupkg new file mode 100644 index 0000000..998dae5 Binary files /dev/null and b/packages/cldrjs.0.5.0/cldrjs.0.5.0.nupkg differ diff --git a/packages/cldrjs.0.5.0/content/Scripts/cldr.js b/packages/cldrjs.0.5.0/content/Scripts/cldr.js new file mode 100644 index 0000000..d7e4baa --- /dev/null +++ b/packages/cldrjs.0.5.0/content/Scripts/cldr.js @@ -0,0 +1,682 @@ +/** + * CLDR JavaScript Library v0.5.0 + * http://jquery.com/ + * + * Copyright 2013 Rafael Xavier de Souza + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2017-08-11T11:52Z + */ +/*! + * CLDR JavaScript Library v0.5.0 2017-08-11T11:52Z MIT license © Rafael Xavier + * http://git.io/h4lmVg + */ +(function( root, factory ) { + + if ( typeof define === "function" && define.amd ) { + // AMD. + define( factory ); + } else if ( typeof module === "object" && typeof module.exports === "object" ) { + // Node. CommonJS. + module.exports = factory(); + } else { + // Global + root.Cldr = factory(); + } + +}( this, function() { + + + var arrayIsArray = Array.isArray || function( obj ) { + return Object.prototype.toString.call( obj ) === "[object Array]"; + }; + + + + + var pathNormalize = function( path, attributes ) { + if ( arrayIsArray( path ) ) { + path = path.join( "/" ); + } + if ( typeof path !== "string" ) { + throw new Error( "invalid path \"" + path + "\"" ); + } + // 1: Ignore leading slash `/` + // 2: Ignore leading `cldr/` + path = path + .replace( /^\// , "" ) /* 1 */ + .replace( /^cldr\// , "" ); /* 2 */ + + // Replace {attribute}'s + path = path.replace( /{[a-zA-Z]+}/g, function( name ) { + name = name.replace( /^{([^}]*)}$/, "$1" ); + return attributes[ name ]; + }); + + return path.split( "/" ); + }; + + + + + var arraySome = function( array, callback ) { + var i, length; + if ( array.some ) { + return array.some( callback ); + } + for ( i = 0, length = array.length; i < length; i++ ) { + if ( callback( array[ i ], i, array ) ) { + return true; + } + } + return false; + }; + + + + + /** + * Return the maximized language id as defined in + * http://www.unicode.org/reports/tr35/#Likely_Subtags + * 1. Canonicalize. + * 1.1 Make sure the input locale is in canonical form: uses the right + * separator, and has the right casing. + * TODO Right casing? What df? It seems languages are lowercase, scripts are + * Capitalized, territory is uppercase. I am leaving this as an exercise to + * the user. + * + * 1.2 Replace any deprecated subtags with their canonical values using the + * data in supplemental metadata. Use the first value in the + * replacement list, if it exists. Language tag replacements may have multiple + * parts, such as "sh" ➞ "sr_Latn" or mo" ➞ "ro_MD". In such a case, the + * original script and/or region are retained if there is one. Thus + * "sh_Arab_AQ" ➞ "sr_Arab_AQ", not "sr_Latn_AQ". + * TODO What data? + * + * 1.3 If the tag is grandfathered (see in the supplemental data), then return it. + * TODO grandfathered? + * + * 1.4 Remove the script code 'Zzzz' and the region code 'ZZ' if they occur. + * 1.5 Get the components of the cleaned-up source tag (languages, scripts, + * and regions), plus any variants and extensions. + * 2. Lookup. Lookup each of the following in order, and stop on the first + * match: + * 2.1 languages_scripts_regions + * 2.2 languages_regions + * 2.3 languages_scripts + * 2.4 languages + * 2.5 und_scripts + * 3. Return + * 3.1 If there is no match, either return an error value, or the match for + * "und" (in APIs where a valid language tag is required). + * 3.2 Otherwise there is a match = languagem_scriptm_regionm + * 3.3 Let xr = xs if xs is not empty, and xm otherwise. + * 3.4 Return the language tag composed of languager _ scriptr _ regionr + + * variants + extensions. + * + * @subtags [Array] normalized language id subtags tuple (see init.js). + */ + var coreLikelySubtags = function( Cldr, cldr, subtags, options ) { + var match, matchFound, + language = subtags[ 0 ], + script = subtags[ 1 ], + sep = Cldr.localeSep, + territory = subtags[ 2 ], + variants = subtags.slice( 3, 4 ); + options = options || {}; + + // Skip if (language, script, territory) is not empty [3.3] + if ( language !== "und" && script !== "Zzzz" && territory !== "ZZ" ) { + return [ language, script, territory ].concat( variants ); + } + + // Skip if no supplemental likelySubtags data is present + if ( typeof cldr.get( "supplemental/likelySubtags" ) === "undefined" ) { + return; + } + + // [2] + matchFound = arraySome([ + [ language, script, territory ], + [ language, territory ], + [ language, script ], + [ language ], + [ "und", script ] + ], function( test ) { + return match = !(/\b(Zzzz|ZZ)\b/).test( test.join( sep ) ) /* [1.4] */ && cldr.get( [ "supplemental/likelySubtags", test.join( sep ) ] ); + }); + + // [3] + if ( matchFound ) { + // [3.2 .. 3.4] + match = match.split( sep ); + return [ + language !== "und" ? language : match[ 0 ], + script !== "Zzzz" ? script : match[ 1 ], + territory !== "ZZ" ? territory : match[ 2 ] + ].concat( variants ); + } else if ( options.force ) { + // [3.1.2] + return cldr.get( "supplemental/likelySubtags/und" ).split( sep ); + } else { + // [3.1.1] + return; + } + }; + + + + /** + * Given a locale, remove any fields that Add Likely Subtags would add. + * http://www.unicode.org/reports/tr35/#Likely_Subtags + * 1. First get max = AddLikelySubtags(inputLocale). If an error is signaled, + * return it. + * 2. Remove the variants from max. + * 3. Then for trial in {language, language _ region, language _ script}. If + * AddLikelySubtags(trial) = max, then return trial + variants. + * 4. If you do not get a match, return max + variants. + * + * @maxLanguageId [Array] maxLanguageId tuple (see init.js). + */ + var coreRemoveLikelySubtags = function( Cldr, cldr, maxLanguageId ) { + var match, matchFound, + language = maxLanguageId[ 0 ], + script = maxLanguageId[ 1 ], + territory = maxLanguageId[ 2 ], + variants = maxLanguageId[ 3 ]; + + // [3] + matchFound = arraySome([ + [ [ language, "Zzzz", "ZZ" ], [ language ] ], + [ [ language, "Zzzz", territory ], [ language, territory ] ], + [ [ language, script, "ZZ" ], [ language, script ] ] + ], function( test ) { + var result = coreLikelySubtags( Cldr, cldr, test[ 0 ] ); + match = test[ 1 ]; + return result && result[ 0 ] === maxLanguageId[ 0 ] && + result[ 1 ] === maxLanguageId[ 1 ] && + result[ 2 ] === maxLanguageId[ 2 ]; + }); + + if ( matchFound ) { + if ( variants ) { + match.push( variants ); + } + return match; + } + + // [4] + return maxLanguageId; + }; + + + + + /** + * subtags( locale ) + * + * @locale [String] + */ + var coreSubtags = function( locale ) { + var aux, unicodeLanguageId, + subtags = []; + + locale = locale.replace( /_/, "-" ); + + // Unicode locale extensions. + aux = locale.split( "-u-" ); + if ( aux[ 1 ] ) { + aux[ 1 ] = aux[ 1 ].split( "-t-" ); + locale = aux[ 0 ] + ( aux[ 1 ][ 1 ] ? "-t-" + aux[ 1 ][ 1 ] : ""); + subtags[ 4 /* unicodeLocaleExtensions */ ] = aux[ 1 ][ 0 ]; + } + + // TODO normalize transformed extensions. Currently, skipped. + // subtags[ x ] = locale.split( "-t-" )[ 1 ]; + unicodeLanguageId = locale.split( "-t-" )[ 0 ]; + + // unicode_language_id = "root" + // | unicode_language_subtag + // (sep unicode_script_subtag)? + // (sep unicode_region_subtag)? + // (sep unicode_variant_subtag)* ; + // + // Although unicode_language_subtag = alpha{2,8}, I'm using alpha{2,3}. Because, there's no language on CLDR lengthier than 3. + aux = unicodeLanguageId.match( /^(([a-z]{2,3})(-([A-Z][a-z]{3}))?(-([A-Z]{2}|[0-9]{3}))?)((-([a-zA-Z0-9]{5,8}|[0-9][a-zA-Z0-9]{3}))*)$|^(root)$/ ); + if ( aux === null ) { + return [ "und", "Zzzz", "ZZ" ]; + } + subtags[ 0 /* language */ ] = aux[ 10 ] /* root */ || aux[ 2 ] || "und"; + subtags[ 1 /* script */ ] = aux[ 4 ] || "Zzzz"; + subtags[ 2 /* territory */ ] = aux[ 6 ] || "ZZ"; + if ( aux[ 7 ] && aux[ 7 ].length ) { + subtags[ 3 /* variant */ ] = aux[ 7 ].slice( 1 ) /* remove leading "-" */; + } + + // 0: language + // 1: script + // 2: territory (aka region) + // 3: variant + // 4: unicodeLocaleExtensions + return subtags; + }; + + + + + var arrayForEach = function( array, callback ) { + var i, length; + if ( array.forEach ) { + return array.forEach( callback ); + } + for ( i = 0, length = array.length; i < length; i++ ) { + callback( array[ i ], i, array ); + } + }; + + + + + /** + * bundleLookup( minLanguageId ) + * + * @Cldr [Cldr class] + * + * @cldr [Cldr instance] + * + * @minLanguageId [String] requested languageId after applied remove likely subtags. + */ + var bundleLookup = function( Cldr, cldr, minLanguageId ) { + var availableBundleMap = Cldr._availableBundleMap, + availableBundleMapQueue = Cldr._availableBundleMapQueue; + + if ( availableBundleMapQueue.length ) { + arrayForEach( availableBundleMapQueue, function( bundle ) { + var existing, maxBundle, minBundle, subtags; + subtags = coreSubtags( bundle ); + maxBundle = coreLikelySubtags( Cldr, cldr, subtags ); + minBundle = coreRemoveLikelySubtags( Cldr, cldr, maxBundle ); + minBundle = minBundle.join( Cldr.localeSep ); + existing = availableBundleMapQueue[ minBundle ]; + if ( existing && existing.length < bundle.length ) { + return; + } + availableBundleMap[ minBundle ] = bundle; + }); + Cldr._availableBundleMapQueue = []; + } + + return availableBundleMap[ minLanguageId ] || null; + }; + + + + + var objectKeys = function( object ) { + var i, + result = []; + + if ( Object.keys ) { + return Object.keys( object ); + } + + for ( i in object ) { + result.push( i ); + } + + return result; + }; + + + + + var createError = function( code, attributes ) { + var error, message; + + message = code + ( attributes && JSON ? ": " + JSON.stringify( attributes ) : "" ); + error = new Error( message ); + error.code = code; + + // extend( error, attributes ); + arrayForEach( objectKeys( attributes ), function( attribute ) { + error[ attribute ] = attributes[ attribute ]; + }); + + return error; + }; + + + + + var validate = function( code, check, attributes ) { + if ( !check ) { + throw createError( code, attributes ); + } + }; + + + + + var validatePresence = function( value, name ) { + validate( "E_MISSING_PARAMETER", typeof value !== "undefined", { + name: name + }); + }; + + + + + var validateType = function( value, name, check, expected ) { + validate( "E_INVALID_PAR_TYPE", check, { + expected: expected, + name: name, + value: value + }); + }; + + + + + var validateTypePath = function( value, name ) { + validateType( value, name, typeof value === "string" || arrayIsArray( value ), "String or Array" ); + }; + + + + + /** + * Function inspired by jQuery Core, but reduced to our use case. + */ + var isPlainObject = function( obj ) { + return obj !== null && "" + obj === "[object Object]"; + }; + + + + + var validateTypePlainObject = function( value, name ) { + validateType( value, name, typeof value === "undefined" || isPlainObject( value ), "Plain Object" ); + }; + + + + + var validateTypeString = function( value, name ) { + validateType( value, name, typeof value === "string", "a string" ); + }; + + + + + // @path: normalized path + var resourceGet = function( data, path ) { + var i, + node = data, + length = path.length; + + for ( i = 0; i < length - 1; i++ ) { + node = node[ path[ i ] ]; + if ( !node ) { + return undefined; + } + } + return node[ path[ i ] ]; + }; + + + + + /** + * setAvailableBundles( Cldr, json ) + * + * @Cldr [Cldr class] + * + * @json resolved/unresolved cldr data. + * + * Set available bundles queue based on passed json CLDR data. Considers a bundle as any String at /main/{bundle}. + */ + var coreSetAvailableBundles = function( Cldr, json ) { + var bundle, + availableBundleMapQueue = Cldr._availableBundleMapQueue, + main = resourceGet( json, [ "main" ] ); + + if ( main ) { + for ( bundle in main ) { + if ( main.hasOwnProperty( bundle ) && bundle !== "root" && + availableBundleMapQueue.indexOf( bundle ) === -1 ) { + availableBundleMapQueue.push( bundle ); + } + } + } + }; + + + + var alwaysArray = function( somethingOrArray ) { + return arrayIsArray( somethingOrArray ) ? somethingOrArray : [ somethingOrArray ]; + }; + + + var jsonMerge = (function() { + + // Returns new deeply merged JSON. + // + // Eg. + // merge( { a: { b: 1, c: 2 } }, { a: { b: 3, d: 4 } } ) + // -> { a: { b: 3, c: 2, d: 4 } } + // + // @arguments JSON's + // + var merge = function() { + var destination = {}, + sources = [].slice.call( arguments, 0 ); + arrayForEach( sources, function( source ) { + var prop; + for ( prop in source ) { + if ( prop in destination && typeof destination[ prop ] === "object" && !arrayIsArray( destination[ prop ] ) ) { + + // Merge Objects + destination[ prop ] = merge( destination[ prop ], source[ prop ] ); + + } else { + + // Set new values + destination[ prop ] = source[ prop ]; + + } + } + }); + return destination; + }; + + return merge; + +}()); + + + /** + * load( Cldr, source, jsons ) + * + * @Cldr [Cldr class] + * + * @source [Object] + * + * @jsons [arguments] + */ + var coreLoad = function( Cldr, source, jsons ) { + var i, j, json; + + validatePresence( jsons[ 0 ], "json" ); + + // Support arbitrary parameters, e.g., `Cldr.load({...}, {...})`. + for ( i = 0; i < jsons.length; i++ ) { + + // Support array parameters, e.g., `Cldr.load([{...}, {...}])`. + json = alwaysArray( jsons[ i ] ); + + for ( j = 0; j < json.length; j++ ) { + validateTypePlainObject( json[ j ], "json" ); + source = jsonMerge( source, json[ j ] ); + coreSetAvailableBundles( Cldr, json[ j ] ); + } + } + + return source; + }; + + + + var itemGetResolved = function( Cldr, path, attributes ) { + // Resolve path + var normalizedPath = pathNormalize( path, attributes ); + + return resourceGet( Cldr._resolved, normalizedPath ); + }; + + + + + /** + * new Cldr() + */ + var Cldr = function( locale ) { + this.init( locale ); + }; + + // Build optimization hack to avoid duplicating functions across modules. + Cldr._alwaysArray = alwaysArray; + Cldr._coreLoad = coreLoad; + Cldr._createError = createError; + Cldr._itemGetResolved = itemGetResolved; + Cldr._jsonMerge = jsonMerge; + Cldr._pathNormalize = pathNormalize; + Cldr._resourceGet = resourceGet; + Cldr._validatePresence = validatePresence; + Cldr._validateType = validateType; + Cldr._validateTypePath = validateTypePath; + Cldr._validateTypePlainObject = validateTypePlainObject; + + Cldr._availableBundleMap = {}; + Cldr._availableBundleMapQueue = []; + Cldr._resolved = {}; + + // Allow user to override locale separator "-" (default) | "_". According to http://www.unicode.org/reports/tr35/#Unicode_language_identifier, both "-" and "_" are valid locale separators (eg. "en_GB", "en-GB"). According to http://unicode.org/cldr/trac/ticket/6786 its usage must be consistent throughout the data set. + Cldr.localeSep = "-"; + + /** + * Cldr.load( json [, json, ...] ) + * + * @json [JSON] CLDR data or [Array] Array of @json's. + * + * Load resolved cldr data. + */ + Cldr.load = function() { + Cldr._resolved = coreLoad( Cldr, Cldr._resolved, arguments ); + }; + + /** + * .init() automatically run on instantiation/construction. + */ + Cldr.prototype.init = function( locale ) { + var attributes, language, maxLanguageId, minLanguageId, script, subtags, territory, unicodeLocaleExtensions, variant, + sep = Cldr.localeSep, + unicodeLocaleExtensionsRaw = ""; + + validatePresence( locale, "locale" ); + validateTypeString( locale, "locale" ); + + subtags = coreSubtags( locale ); + + if ( subtags.length === 5 ) { + unicodeLocaleExtensions = subtags.pop(); + unicodeLocaleExtensionsRaw = sep + "u" + sep + unicodeLocaleExtensions; + // Remove trailing null when there is unicodeLocaleExtensions but no variants. + if ( !subtags[ 3 ] ) { + subtags.pop(); + } + } + variant = subtags[ 3 ]; + + // Normalize locale code. + // Get (or deduce) the "triple subtags": language, territory (also aliased as region), and script subtags. + // Get the variant subtags (calendar, collation, currency, etc). + // refs: + // - http://www.unicode.org/reports/tr35/#Field_Definitions + // - http://www.unicode.org/reports/tr35/#Language_and_Locale_IDs + // - http://www.unicode.org/reports/tr35/#Unicode_locale_identifier + + // When a locale id does not specify a language, or territory (region), or script, they are obtained by Likely Subtags. + maxLanguageId = coreLikelySubtags( Cldr, this, subtags, { force: true } ) || subtags; + language = maxLanguageId[ 0 ]; + script = maxLanguageId[ 1 ]; + territory = maxLanguageId[ 2 ]; + + minLanguageId = coreRemoveLikelySubtags( Cldr, this, maxLanguageId ).join( sep ); + + // Set attributes + this.attributes = attributes = { + bundle: bundleLookup( Cldr, this, minLanguageId ), + + // Unicode Language Id + minLanguageId: minLanguageId + unicodeLocaleExtensionsRaw, + maxLanguageId: maxLanguageId.join( sep ) + unicodeLocaleExtensionsRaw, + + // Unicode Language Id Subtabs + language: language, + script: script, + territory: territory, + region: territory, /* alias */ + variant: variant + }; + + // Unicode locale extensions. + unicodeLocaleExtensions && ( "-" + unicodeLocaleExtensions ).replace( /-[a-z]{3,8}|(-[a-z]{2})-([a-z]{3,8})/g, function( attribute, key, type ) { + + if ( key ) { + + // Extension is in the `keyword` form. + attributes[ "u" + key ] = type; + } else { + + // Extension is in the `attribute` form. + attributes[ "u" + attribute ] = true; + } + }); + + this.locale = locale; + }; + + /** + * .get() + */ + Cldr.prototype.get = function( path ) { + + validatePresence( path, "path" ); + validateTypePath( path, "path" ); + + return itemGetResolved( Cldr, path, this.attributes ); + }; + + /** + * .main() + */ + Cldr.prototype.main = function( path ) { + validatePresence( path, "path" ); + validateTypePath( path, "path" ); + + validate( "E_MISSING_BUNDLE", this.attributes.bundle !== null, { + locale: this.locale + }); + + path = alwaysArray( path ); + return this.get( [ "main/{bundle}" ].concat( path ) ); + }; + + return Cldr; + + + + +})); diff --git a/packages/cldrjs.0.5.0/content/Scripts/cldr/event.js b/packages/cldrjs.0.5.0/content/Scripts/cldr/event.js new file mode 100644 index 0000000..c7c4faa --- /dev/null +++ b/packages/cldrjs.0.5.0/content/Scripts/cldr/event.js @@ -0,0 +1,585 @@ +/** + * CLDR JavaScript Library v0.5.0 + * http://jquery.com/ + * + * Copyright 2013 Rafael Xavier de Souza + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2017-08-11T11:52Z + */ +/*! + * CLDR JavaScript Library v0.5.0 2017-08-11T11:52Z MIT license © Rafael Xavier + * http://git.io/h4lmVg + */ +(function( factory ) { + + if ( typeof define === "function" && define.amd ) { + // AMD. + define( [ "../cldr" ], factory ); + } else if ( typeof module === "object" && typeof module.exports === "object" ) { + // Node. CommonJS. + module.exports = factory( require( "../cldr" ) ); + } else { + // Global + factory( Cldr ); + } + +}(function( Cldr ) { + + // Build optimization hack to avoid duplicating functions across modules. + var pathNormalize = Cldr._pathNormalize, + validatePresence = Cldr._validatePresence, + validateType = Cldr._validateType; + +/*! + * EventEmitter v4.2.7 - git.io/ee + * Oliver Caldwell + * MIT license + * @preserve + */ + +var EventEmitter; +/* jshint ignore:start */ +EventEmitter = (function () { + + + /** + * Class for managing events. + * Can be extended to provide event functionality in other classes. + * + * @class EventEmitter Manages event registering and emitting. + */ + function EventEmitter() {} + + // Shortcuts to improve speed and size + var proto = EventEmitter.prototype; + var exports = {}; + + + /** + * Finds the index of the listener for the event in it's storage array. + * + * @param {Function[]} listeners Array of listeners to search through. + * @param {Function} listener Method to look for. + * @return {Number} Index of the specified listener, -1 if not found + * @api private + */ + function indexOfListener(listeners, listener) { + var i = listeners.length; + while (i--) { + if (listeners[i].listener === listener) { + return i; + } + } + + return -1; + } + + /** + * Alias a method while keeping the context correct, to allow for overwriting of target method. + * + * @param {String} name The name of the target method. + * @return {Function} The aliased method + * @api private + */ + function alias(name) { + return function aliasClosure() { + return this[name].apply(this, arguments); + }; + } + + /** + * Returns the listener array for the specified event. + * Will initialise the event object and listener arrays if required. + * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them. + * Each property in the object response is an array of listener functions. + * + * @param {String|RegExp} evt Name of the event to return the listeners from. + * @return {Function[]|Object} All listener functions for the event. + */ + proto.getListeners = function getListeners(evt) { + var events = this._getEvents(); + var response; + var key; + + // Return a concatenated array of all matching events if + // the selector is a regular expression. + if (evt instanceof RegExp) { + response = {}; + for (key in events) { + if (events.hasOwnProperty(key) && evt.test(key)) { + response[key] = events[key]; + } + } + } + else { + response = events[evt] || (events[evt] = []); + } + + return response; + }; + + /** + * Takes a list of listener objects and flattens it into a list of listener functions. + * + * @param {Object[]} listeners Raw listener objects. + * @return {Function[]} Just the listener functions. + */ + proto.flattenListeners = function flattenListeners(listeners) { + var flatListeners = []; + var i; + + for (i = 0; i < listeners.length; i += 1) { + flatListeners.push(listeners[i].listener); + } + + return flatListeners; + }; + + /** + * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful. + * + * @param {String|RegExp} evt Name of the event to return the listeners from. + * @return {Object} All listener functions for an event in an object. + */ + proto.getListenersAsObject = function getListenersAsObject(evt) { + var listeners = this.getListeners(evt); + var response; + + if (listeners instanceof Array) { + response = {}; + response[evt] = listeners; + } + + return response || listeners; + }; + + /** + * Adds a listener function to the specified event. + * The listener will not be added if it is a duplicate. + * If the listener returns true then it will be removed after it is called. + * If you pass a regular expression as the event name then the listener will be added to all events that match it. + * + * @param {String|RegExp} evt Name of the event to attach the listener to. + * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.addListener = function addListener(evt, listener) { + var listeners = this.getListenersAsObject(evt); + var listenerIsWrapped = typeof listener === 'object'; + var key; + + for (key in listeners) { + if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) { + listeners[key].push(listenerIsWrapped ? listener : { + listener: listener, + once: false + }); + } + } + + return this; + }; + + /** + * Alias of addListener + */ + proto.on = alias('addListener'); + + /** + * Semi-alias of addListener. It will add a listener that will be + * automatically removed after it's first execution. + * + * @param {String|RegExp} evt Name of the event to attach the listener to. + * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.addOnceListener = function addOnceListener(evt, listener) { + return this.addListener(evt, { + listener: listener, + once: true + }); + }; + + /** + * Alias of addOnceListener. + */ + proto.once = alias('addOnceListener'); + + /** + * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad. + * You need to tell it what event names should be matched by a regex. + * + * @param {String} evt Name of the event to create. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.defineEvent = function defineEvent(evt) { + this.getListeners(evt); + return this; + }; + + /** + * Uses defineEvent to define multiple events. + * + * @param {String[]} evts An array of event names to define. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.defineEvents = function defineEvents(evts) { + for (var i = 0; i < evts.length; i += 1) { + this.defineEvent(evts[i]); + } + return this; + }; + + /** + * Removes a listener function from the specified event. + * When passed a regular expression as the event name, it will remove the listener from all events that match it. + * + * @param {String|RegExp} evt Name of the event to remove the listener from. + * @param {Function} listener Method to remove from the event. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.removeListener = function removeListener(evt, listener) { + var listeners = this.getListenersAsObject(evt); + var index; + var key; + + for (key in listeners) { + if (listeners.hasOwnProperty(key)) { + index = indexOfListener(listeners[key], listener); + + if (index !== -1) { + listeners[key].splice(index, 1); + } + } + } + + return this; + }; + + /** + * Alias of removeListener + */ + proto.off = alias('removeListener'); + + /** + * Adds listeners in bulk using the manipulateListeners method. + * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added. + * You can also pass it a regular expression to add the array of listeners to all events that match it. + * Yeah, this function does quite a bit. That's probably a bad thing. + * + * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once. + * @param {Function[]} [listeners] An optional array of listener functions to add. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.addListeners = function addListeners(evt, listeners) { + // Pass through to manipulateListeners + return this.manipulateListeners(false, evt, listeners); + }; + + /** + * Removes listeners in bulk using the manipulateListeners method. + * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. + * You can also pass it an event name and an array of listeners to be removed. + * You can also pass it a regular expression to remove the listeners from all events that match it. + * + * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once. + * @param {Function[]} [listeners] An optional array of listener functions to remove. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.removeListeners = function removeListeners(evt, listeners) { + // Pass through to manipulateListeners + return this.manipulateListeners(true, evt, listeners); + }; + + /** + * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level. + * The first argument will determine if the listeners are removed (true) or added (false). + * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. + * You can also pass it an event name and an array of listeners to be added/removed. + * You can also pass it a regular expression to manipulate the listeners of all events that match it. + * + * @param {Boolean} remove True if you want to remove listeners, false if you want to add. + * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once. + * @param {Function[]} [listeners] An optional array of listener functions to add/remove. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) { + var i; + var value; + var single = remove ? this.removeListener : this.addListener; + var multiple = remove ? this.removeListeners : this.addListeners; + + // If evt is an object then pass each of it's properties to this method + if (typeof evt === 'object' && !(evt instanceof RegExp)) { + for (i in evt) { + if (evt.hasOwnProperty(i) && (value = evt[i])) { + // Pass the single listener straight through to the singular method + if (typeof value === 'function') { + single.call(this, i, value); + } + else { + // Otherwise pass back to the multiple function + multiple.call(this, i, value); + } + } + } + } + else { + // So evt must be a string + // And listeners must be an array of listeners + // Loop over it and pass each one to the multiple method + i = listeners.length; + while (i--) { + single.call(this, evt, listeners[i]); + } + } + + return this; + }; + + /** + * Removes all listeners from a specified event. + * If you do not specify an event then all listeners will be removed. + * That means every event will be emptied. + * You can also pass a regex to remove all events that match it. + * + * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.removeEvent = function removeEvent(evt) { + var type = typeof evt; + var events = this._getEvents(); + var key; + + // Remove different things depending on the state of evt + if (type === 'string') { + // Remove all listeners for the specified event + delete events[evt]; + } + else if (evt instanceof RegExp) { + // Remove all events matching the regex. + for (key in events) { + if (events.hasOwnProperty(key) && evt.test(key)) { + delete events[key]; + } + } + } + else { + // Remove all listeners in all events + delete this._events; + } + + return this; + }; + + /** + * Alias of removeEvent. + * + * Added to mirror the node API. + */ + proto.removeAllListeners = alias('removeEvent'); + + /** + * Emits an event of your choice. + * When emitted, every listener attached to that event will be executed. + * If you pass the optional argument array then those arguments will be passed to every listener upon execution. + * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately. + * So they will not arrive within the array on the other side, they will be separate. + * You can also pass a regular expression to emit to all events that match it. + * + * @param {String|RegExp} evt Name of the event to emit and execute listeners for. + * @param {Array} [args] Optional array of arguments to be passed to each listener. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.emitEvent = function emitEvent(evt, args) { + var listeners = this.getListenersAsObject(evt); + var listener; + var i; + var key; + var response; + + for (key in listeners) { + if (listeners.hasOwnProperty(key)) { + i = listeners[key].length; + + while (i--) { + // If the listener returns true then it shall be removed from the event + // The function is executed either with a basic call or an apply if there is an args array + listener = listeners[key][i]; + + if (listener.once === true) { + this.removeListener(evt, listener.listener); + } + + response = listener.listener.apply(this, args || []); + + if (response === this._getOnceReturnValue()) { + this.removeListener(evt, listener.listener); + } + } + } + } + + return this; + }; + + /** + * Alias of emitEvent + */ + proto.trigger = alias('emitEvent'); + + /** + * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on. + * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it. + * + * @param {String|RegExp} evt Name of the event to emit and execute listeners for. + * @param {...*} Optional additional arguments to be passed to each listener. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.emit = function emit(evt) { + var args = Array.prototype.slice.call(arguments, 1); + return this.emitEvent(evt, args); + }; + + /** + * Sets the current value to check against when executing listeners. If a + * listeners return value matches the one set here then it will be removed + * after execution. This value defaults to true. + * + * @param {*} value The new value to check for when executing listeners. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.setOnceReturnValue = function setOnceReturnValue(value) { + this._onceReturnValue = value; + return this; + }; + + /** + * Fetches the current value to check against when executing listeners. If + * the listeners return value matches this one then it should be removed + * automatically. It will return true by default. + * + * @return {*|Boolean} The current value to check for or the default, true. + * @api private + */ + proto._getOnceReturnValue = function _getOnceReturnValue() { + if (this.hasOwnProperty('_onceReturnValue')) { + return this._onceReturnValue; + } + else { + return true; + } + }; + + /** + * Fetches the events object and creates one if required. + * + * @return {Object} The events storage object. + * @api private + */ + proto._getEvents = function _getEvents() { + return this._events || (this._events = {}); + }; + + /** + * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version. + * + * @return {Function} Non conflicting EventEmitter class. + */ + EventEmitter.noConflict = function noConflict() { + exports.EventEmitter = originalGlobalValue; + return EventEmitter; + }; + + return EventEmitter; +}()); +/* jshint ignore:end */ + + + + var validateTypeFunction = function( value, name ) { + validateType( value, name, typeof value === "undefined" || typeof value === "function", "Function" ); + }; + + + + + var superGet, superInit, + globalEe = new EventEmitter(); + + function validateTypeEvent( value, name ) { + validateType( value, name, typeof value === "string" || value instanceof RegExp, "String or RegExp" ); + } + + function validateThenCall( method, self ) { + return function( event, listener ) { + validatePresence( event, "event" ); + validateTypeEvent( event, "event" ); + + validatePresence( listener, "listener" ); + validateTypeFunction( listener, "listener" ); + + return self[ method ].apply( self, arguments ); + }; + } + + function off( self ) { + return validateThenCall( "off", self ); + } + + function on( self ) { + return validateThenCall( "on", self ); + } + + function once( self ) { + return validateThenCall( "once", self ); + } + + Cldr.off = off( globalEe ); + Cldr.on = on( globalEe ); + Cldr.once = once( globalEe ); + + /** + * Overload Cldr.prototype.init(). + */ + superInit = Cldr.prototype.init; + Cldr.prototype.init = function() { + var ee; + this.ee = ee = new EventEmitter(); + this.off = off( ee ); + this.on = on( ee ); + this.once = once( ee ); + superInit.apply( this, arguments ); + }; + + /** + * getOverload is encapsulated, because of cldr/unresolved. If it's loaded + * after cldr/event (and note it overwrites .get), it can trigger this + * overload again. + */ + function getOverload() { + + /** + * Overload Cldr.prototype.get(). + */ + superGet = Cldr.prototype.get; + Cldr.prototype.get = function( path ) { + var value = superGet.apply( this, arguments ); + path = pathNormalize( path, this.attributes ).join( "/" ); + globalEe.trigger( "get", [ path, value ] ); + this.ee.trigger( "get", [ path, value ] ); + return value; + }; + } + + Cldr._eventInit = getOverload; + getOverload(); + + return Cldr; + + + + +})); diff --git a/packages/cldrjs.0.5.0/content/Scripts/cldr/supplemental.js b/packages/cldrjs.0.5.0/content/Scripts/cldr/supplemental.js new file mode 100644 index 0000000..f755a78 --- /dev/null +++ b/packages/cldrjs.0.5.0/content/Scripts/cldr/supplemental.js @@ -0,0 +1,101 @@ +/** + * CLDR JavaScript Library v0.5.0 + * http://jquery.com/ + * + * Copyright 2013 Rafael Xavier de Souza + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2017-08-11T11:52Z + */ +/*! + * CLDR JavaScript Library v0.5.0 2017-08-11T11:52Z MIT license © Rafael Xavier + * http://git.io/h4lmVg + */ +(function( factory ) { + + if ( typeof define === "function" && define.amd ) { + // AMD. + define( [ "../cldr" ], factory ); + } else if ( typeof module === "object" && typeof module.exports === "object" ) { + // Node. CommonJS. + module.exports = factory( require( "../cldr" ) ); + } else { + // Global + factory( Cldr ); + } + +}(function( Cldr ) { + + // Build optimization hack to avoid duplicating functions across modules. + var alwaysArray = Cldr._alwaysArray; + + + + var supplementalMain = function( cldr ) { + + var prepend, supplemental; + + prepend = function( prepend ) { + return function( path ) { + path = alwaysArray( path ); + return cldr.get( [ prepend ].concat( path ) ); + }; + }; + + supplemental = prepend( "supplemental" ); + + // Week Data + // http://www.unicode.org/reports/tr35/tr35-dates.html#Week_Data + supplemental.weekData = prepend( "supplemental/weekData" ); + + supplemental.weekData.firstDay = function() { + return cldr.get( "supplemental/weekData/firstDay/{territory}" ) || + cldr.get( "supplemental/weekData/firstDay/001" ); + }; + + supplemental.weekData.minDays = function() { + var minDays = cldr.get( "supplemental/weekData/minDays/{territory}" ) || + cldr.get( "supplemental/weekData/minDays/001" ); + return parseInt( minDays, 10 ); + }; + + // Time Data + // http://www.unicode.org/reports/tr35/tr35-dates.html#Time_Data + supplemental.timeData = prepend( "supplemental/timeData" ); + + supplemental.timeData.allowed = function() { + return cldr.get( "supplemental/timeData/{territory}/_allowed" ) || + cldr.get( "supplemental/timeData/001/_allowed" ); + }; + + supplemental.timeData.preferred = function() { + return cldr.get( "supplemental/timeData/{territory}/_preferred" ) || + cldr.get( "supplemental/timeData/001/_preferred" ); + }; + + return supplemental; + + }; + + + + + var initSuper = Cldr.prototype.init; + + /** + * .init() automatically ran on construction. + * + * Overload .init(). + */ + Cldr.prototype.init = function() { + initSuper.apply( this, arguments ); + this.supplemental = supplementalMain( this ); + }; + + return Cldr; + + + + +})); diff --git a/packages/cldrjs.0.5.0/content/Scripts/cldr/unresolved.js b/packages/cldrjs.0.5.0/content/Scripts/cldr/unresolved.js new file mode 100644 index 0000000..ebf32d0 --- /dev/null +++ b/packages/cldrjs.0.5.0/content/Scripts/cldr/unresolved.js @@ -0,0 +1,164 @@ +/** + * CLDR JavaScript Library v0.5.0 + * http://jquery.com/ + * + * Copyright 2013 Rafael Xavier de Souza + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2017-08-11T11:52Z + */ +/*! + * CLDR JavaScript Library v0.5.0 2017-08-11T11:52Z MIT license © Rafael Xavier + * http://git.io/h4lmVg + */ +(function( factory ) { + + if ( typeof define === "function" && define.amd ) { + // AMD. + define( [ "../cldr" ], factory ); + } else if ( typeof module === "object" && typeof module.exports === "object" ) { + // Node. CommonJS. + module.exports = factory( require( "../cldr" ) ); + } else { + // Global + factory( Cldr ); + } + +}(function( Cldr ) { + + // Build optimization hack to avoid duplicating functions across modules. + var coreLoad = Cldr._coreLoad; + var jsonMerge = Cldr._jsonMerge; + var pathNormalize = Cldr._pathNormalize; + var resourceGet = Cldr._resourceGet; + var validatePresence = Cldr._validatePresence; + var validateTypePath = Cldr._validateTypePath; + + + + var bundleParentLookup = function( Cldr, locale ) { + var normalizedPath, parent; + + if ( locale === "root" ) { + return; + } + + // First, try to find parent on supplemental data. + normalizedPath = pathNormalize( [ "supplemental/parentLocales/parentLocale", locale ] ); + parent = resourceGet( Cldr._resolved, normalizedPath ) || resourceGet( Cldr._raw, normalizedPath ); + if ( parent ) { + return parent; + } + + // Or truncate locale. + parent = locale.substr( 0, locale.lastIndexOf( Cldr.localeSep ) ); + if ( !parent ) { + return "root"; + } + + return parent; + }; + + + + + // @path: normalized path + var resourceSet = function( data, path, value ) { + var i, + node = data, + length = path.length; + + for ( i = 0; i < length - 1; i++ ) { + if ( !node[ path[ i ] ] ) { + node[ path[ i ] ] = {}; + } + node = node[ path[ i ] ]; + } + node[ path[ i ] ] = value; + }; + + + var itemLookup = (function() { + + var lookup; + + lookup = function( Cldr, locale, path, attributes, childLocale ) { + var normalizedPath, parent, value; + + // 1: Finish recursion + // 2: Avoid infinite loop + if ( typeof locale === "undefined" /* 1 */ || locale === childLocale /* 2 */ ) { + return; + } + + // Resolve path + normalizedPath = pathNormalize( path, attributes ); + + // Check resolved (cached) data first + // 1: Due to #16, never use the cached resolved non-leaf nodes. It may not + // represent its leafs in its entirety. + value = resourceGet( Cldr._resolved, normalizedPath ); + if ( value !== undefined && typeof value !== "object" /* 1 */ ) { + return value; + } + + // Check raw data + value = resourceGet( Cldr._raw, normalizedPath ); + + if ( value === undefined ) { + // Or, lookup at parent locale + parent = bundleParentLookup( Cldr, locale ); + value = lookup( Cldr, parent, path, jsonMerge( attributes, { bundle: parent }), locale ); + } + + if ( value !== undefined ) { + // Set resolved (cached) + resourceSet( Cldr._resolved, normalizedPath, value ); + } + + return value; + }; + + return lookup; + +}()); + + + Cldr._raw = {}; + + /** + * Cldr.load( json [, json, ...] ) + * + * @json [JSON] CLDR data or [Array] Array of @json's. + * + * Load resolved or unresolved cldr data. + * Overwrite Cldr.load(). + */ + Cldr.load = function() { + Cldr._raw = coreLoad( Cldr, Cldr._raw, arguments ); + }; + + /** + * Overwrite Cldr.prototype.get(). + */ + Cldr.prototype.get = function( path ) { + validatePresence( path, "path" ); + validateTypePath( path, "path" ); + + // 1: use bundle as locale on item lookup for simplification purposes, because no other extended subtag is used anyway on bundle parent lookup. + // 2: during init(), this method is called, but bundle is yet not defined. Use "" as a workaround in this very specific scenario. + return itemLookup( Cldr, this.attributes && this.attributes.bundle /* 1 */ || "" /* 2 */, path, this.attributes ); + }; + + // In case cldr/unresolved is loaded after cldr/event, we trigger its overloads again. Because, .get is overwritten in here. + if ( Cldr._eventInit ) { + Cldr._eventInit(); + } + + return Cldr; + + + + +})); diff --git a/packages/jQuery.3.2.1/Content/Scripts/jquery-3.2.1-vsdoc.js b/packages/jQuery.3.2.1/Content/Scripts/jquery-3.2.1-vsdoc.js new file mode 100644 index 0000000..b860b72 --- /dev/null +++ b/packages/jQuery.3.2.1/Content/Scripts/jquery-3.2.1-vsdoc.js @@ -0,0 +1,6632 @@ +/* +* This file has been generated to support Visual Studio IntelliSense. +* You should not use this file at runtime inside the browser--it is only +* intended to be used only for design-time IntelliSense. Please use the +* standard jQuery library for all runtime use. +* +* Comment version: 3.2.1 +*/ + +/*! +* jQuery JavaScript Library v3.2.1 +* http://jquery.com/ +* +* Includes Sizzle.js +* http://sizzlejs.com/ +* +* Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors +* Released under the MIT license +* http://jquery.org/license +* +*/ + +(function (window, undefined) { + var jQuery = function (selector, context) { + /// + /// 1: Accepts a string containing a CSS selector which is then used to match a set of elements. + /// 1.1 - $(selector, context) + /// 1.2 - $(element) + /// 1.3 - $(elementArray) + /// 1.4 - $(object) + /// 1.5 - $(jQuery object) + /// 1.6 - $() + /// 2: Creates DOM elements on the fly from the provided string of raw HTML. + /// 2.1 - $(html, ownerDocument) + /// 2.2 - $(html, attributes) + /// 3: Binds a function to be executed when the DOM has finished loading. + /// 3.1 - $(callback) + /// + /// + /// A string containing a selector expression + /// + /// + /// A DOM Element, Document, or jQuery to use as context + /// + /// + + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init(selector, context, rootjQuery); + }; + jQuery.Animation = function Animation(elem, properties, options) { + + var result, + stopped, + index = 0, + length = animationPrefilters.length, + deferred = jQuery.Deferred().always(function () { + // don't match elem in the :animated selector + delete tick.elem; + }), + tick = function () { + if (stopped) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max(0, animation.startTime + animation.duration - currentTime), + // archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for (; index < length ; index++) { + animation.tweens[index].run(percent); + } + + deferred.notifyWith(elem, [animation, percent, remaining]); + + if (percent < 1 && length) { + return remaining; + } else { + deferred.resolveWith(elem, [animation]); + return false; + } + }, + animation = deferred.promise({ + elem: elem, + props: jQuery.extend({}, properties), + opts: jQuery.extend(true, { specialEasing: {} }, options), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function (prop, end) { + var tween = jQuery.Tween(elem, animation.opts, prop, end, + animation.opts.specialEasing[prop] || animation.opts.easing); + animation.tweens.push(tween); + return tween; + }, + stop: function (gotoEnd) { + var index = 0, + // if we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if (stopped) { + return this; + } + stopped = true; + for (; index < length ; index++) { + animation.tweens[index].run(1); + } + + // resolve when we played the last frame + // otherwise, reject + if (gotoEnd) { + deferred.resolveWith(elem, [animation, gotoEnd]); + } else { + deferred.rejectWith(elem, [animation, gotoEnd]); + } + return this; + } + }), + props = animation.props; + + propFilter(props, animation.opts.specialEasing); + + for (; index < length ; index++) { + result = animationPrefilters[index].call(animation, elem, props, animation.opts); + if (result) { + return result; + } + } + + createTweens(animation, props); + + if (jQuery.isFunction(animation.opts.start)) { + animation.opts.start.call(elem, animation); + } + + jQuery.fx.timer( + jQuery.extend(tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + }) + ); + + // attach callbacks from options + return animation.progress(animation.opts.progress) + .done(animation.opts.done, animation.opts.complete) + .fail(animation.opts.fail) + .always(animation.opts.always); + }; + jQuery.Callbacks = function (options) { + /// + /// A multi-purpose callbacks list object that provides a powerful way to manage callback lists. + /// + /// + /// An optional list of space-separated flags that change how the callback list behaves. + /// + /// + + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + (optionsCache[options] || createOptions(options)) : + jQuery.extend({}, options); + + var // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // Flag to know if list is currently firing + firing, + // First callback to fire (used internally by add and fireWith) + firingStart, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function (data) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for (; list && firingIndex < firingLength; firingIndex++) { + if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if (list) { + if (stack) { + if (stack.length) { + fire(stack.shift()); + } + } else if (memory) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function () { + if (list) { + // First, we save the current length + var start = list.length; + (function add(args) { + jQuery.each(args, function (_, arg) { + var type = jQuery.type(arg); + if (type === "function") { + if (!options.unique || !self.has(arg)) { + list.push(arg); + } + } else if (arg && arg.length && type !== "string") { + // Inspect recursively + add(arg); + } + }); + })(arguments); + // Do we need to add the callbacks to the + // current firing batch? + if (firing) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if (memory) { + firingStart = start; + fire(memory); + } + } + return this; + }, + // Remove a callback from the list + remove: function () { + if (list) { + jQuery.each(arguments, function (_, arg) { + var index; + while ((index = jQuery.inArray(arg, list, index)) > -1) { + list.splice(index, 1); + // Handle firing indexes + if (firing) { + if (index <= firingLength) { + firingLength--; + } + if (index <= firingIndex) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function (fn) { + return fn ? jQuery.inArray(fn, list) > -1 : !!(list && list.length); + }, + // Remove all callbacks from the list + empty: function () { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function () { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function () { + return !list; + }, + // Lock the list in its current state + lock: function () { + stack = undefined; + if (!memory) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function () { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function (context, args) { + args = args || []; + args = [context, args.slice ? args.slice() : args]; + if (list && (!fired || stack)) { + if (firing) { + stack.push(args); + } else { + fire(args); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function () { + self.fireWith(this, arguments); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function () { + return !!fired; + } + }; + + return self; + }; + jQuery.Deferred = function (func) { + /// + /// A constructor function that returns a chainable utility object with methods to register multiple callbacks into callback queues, invoke callback queues, and relay the success or failure state of any synchronous or asynchronous function. + /// + /// + /// A function that is called just before the constructor returns. + /// + /// + + var tuples = [ + // action, add listener, listener list, final state + ["resolve", "done", jQuery.Callbacks("once memory"), "resolved"], + ["reject", "fail", jQuery.Callbacks("once memory"), "rejected"], + ["notify", "progress", jQuery.Callbacks("memory")] + ], + state = "pending", + promise = { + state: function () { + return state; + }, + always: function () { + deferred.done(arguments).fail(arguments); + return this; + }, + then: function ( /* fnDone, fnFail, fnProgress */) { + var fns = arguments; + return jQuery.Deferred(function (newDefer) { + jQuery.each(tuples, function (i, tuple) { + var action = tuple[0], + fn = jQuery.isFunction(fns[i]) && fns[i]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[tuple[1]](function () { + var returned = fn && fn.apply(this, arguments); + if (returned && jQuery.isFunction(returned.promise)) { + returned.promise() + .done(newDefer.resolve) + .fail(newDefer.reject) + .progress(newDefer.notify); + } else { + newDefer[action + "With"](this === promise ? newDefer.promise() : this, fn ? [returned] : arguments); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function (obj) { + return obj != null ? jQuery.extend(obj, promise) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each(tuples, function (i, tuple) { + var list = tuple[2], + stateString = tuple[3]; + + // promise[ done | fail | progress ] = list.add + promise[tuple[1]] = list.add; + + // Handle state + if (stateString) { + list.add(function () { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[i ^ 1][2].disable, tuples[2][2].lock); + } + + // deferred[ resolve | reject | notify ] + deferred[tuple[0]] = function () { + deferred[tuple[0] + "With"](this === deferred ? promise : this, arguments); + return this; + }; + deferred[tuple[0] + "With"] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise(deferred); + + // Call given func if any + if (func) { + func.call(deferred, deferred); + } + + // All done! + return deferred; + }; + jQuery.Event = function (src, props) { + + // Allow instantiation without the 'new' keyword + if (!(this instanceof jQuery.Event)) { + return new jQuery.Event(src, props); + } + + // Event object + if (src && src.type) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = (src.defaultPrevented || + src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if (props) { + jQuery.extend(this, props); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[jQuery.expando] = true; + }; + jQuery.Tween = function Tween(elem, options, prop, end, easing) { + + return new Tween.prototype.init(elem, options, prop, end, easing); + }; + jQuery._data = function (elem, name, data) { + + return data_priv.access(elem, name, data); + }; + jQuery._evalUrl = function (url) { + + return jQuery.ajax({ + url: url, + type: "GET", + dataType: "text", + async: false, + global: false, + success: jQuery.globalEval + }); + }; + jQuery._queueHooks = function (elem, type) { + + var key = type + "queueHooks"; + return data_priv.get(elem, key) || data_priv.access(elem, key, { + empty: jQuery.Callbacks("once memory").add(function () { + data_priv.remove(elem, [type + "queue", key]); + }) + }); + }; + jQuery._removeData = function (elem, name) { + + data_priv.remove(elem, name); + }; + jQuery.acceptData = function (owner) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType ? + owner.nodeType === 1 || owner.nodeType === 9 : true; + }; + jQuery.access = function (elems, fn, key, value, chainable, emptyGet, raw) { + + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if (jQuery.type(key) === "object") { + chainable = true; + for (i in key) { + jQuery.access(elems, fn, i, key[i], true, emptyGet, raw); + } + + // Sets one value + } else if (value !== undefined) { + chainable = true; + + if (!jQuery.isFunction(value)) { + raw = true; + } + + if (bulk) { + // Bulk operations run against the entire set + if (raw) { + fn.call(elems, value); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function (elem, key, value) { + return bulk.call(jQuery(elem), value); + }; + } + } + + if (fn) { + for (; i < length; i++) { + fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key))); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call(elems) : + length ? fn(elems[0], key) : emptyGet; + }; + jQuery.active = 0; + jQuery.ajax = function (url, options) { + /// + /// Perform an asynchronous HTTP (Ajax) request. + /// 1 - jQuery.ajax(url, settings) + /// 2 - jQuery.ajax(settings) + /// + /// + /// A string containing the URL to which the request is sent. + /// + /// + /// A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup(). See jQuery.ajax( settings ) below for a complete list of all settings. + /// + + + // If url is an object, simulate pre-1.5 signature + if (typeof url === "object") { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + // URL without anti-cache param + cacheURL, + // Response headers + responseHeadersString, + responseHeaders, + // timeout handle + timeoutTimer, + // Cross-domain detection vars + parts, + // To know if global events are to be dispatched + fireGlobals, + // Loop variable + i, + // Create the final options object + s = jQuery.ajaxSetup({}, options), + // Callbacks context + callbackContext = s.context || s, + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? + jQuery(callbackContext) : + jQuery.event, + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks("once memory"), + // Status-dependent callbacks + statusCode = s.statusCode || {}, + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + // The jqXHR state + state = 0, + // Default abort message + strAbort = "canceled", + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function (key) { + var match; + if (state === 2) { + if (!responseHeaders) { + responseHeaders = {}; + while ((match = rheaders.exec(responseHeadersString))) { + responseHeaders[match[1].toLowerCase()] = match[2]; + } + } + match = responseHeaders[key.toLowerCase()]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function () { + return state === 2 ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function (name, value) { + var lname = name.toLowerCase(); + if (!state) { + name = requestHeadersNames[lname] = requestHeadersNames[lname] || name; + requestHeaders[name] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function (type) { + if (!state) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function (map) { + var code; + if (map) { + if (state < 2) { + for (code in map) { + // Lazy-add the new callback in a way that preserves old ones + statusCode[code] = [statusCode[code], map[code]]; + } + } else { + // Execute the appropriate callbacks + jqXHR.always(map[jqXHR.status]); + } + } + return this; + }, + + // Cancel the request + abort: function (statusText) { + var finalText = statusText || strAbort; + if (transport) { + transport.abort(finalText); + } + done(0, finalText); + return this; + } + }; + + // Attach deferreds + deferred.promise(jqXHR).complete = completeDeferred.add; + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; + + // Remove hash character (#7531: and string promotion) + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ((url || s.url || ajaxLocation) + "").replace(rhash, "") + .replace(rprotocol, ajaxLocParts[1] + "//"); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = jQuery.trim(s.dataType || "*").toLowerCase().match(core_rnotwhite) || [""]; + + // A cross-domain request is in order when we have a protocol:host:port mismatch + if (s.crossDomain == null) { + parts = rurl.exec(s.url.toLowerCase()); + s.crossDomain = !!(parts && + (parts[1] !== ajaxLocParts[1] || parts[2] !== ajaxLocParts[2] || + (parts[3] || (parts[1] === "http:" ? "80" : "443")) !== + (ajaxLocParts[3] || (ajaxLocParts[1] === "http:" ? "80" : "443"))) + ); + } + + // Convert data if not already a string + if (s.data && s.processData && typeof s.data !== "string") { + s.data = jQuery.param(s.data, s.traditional); + } + + // Apply prefilters + inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); + + // If request was aborted inside a prefilter, stop there + if (state === 2) { + return jqXHR; + } + + // We can fire global events as of now if asked to + fireGlobals = s.global; + + // Watch for a new set of requests + if (fireGlobals && jQuery.active++ === 0) { + jQuery.event.trigger("ajaxStart"); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test(s.type); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + cacheURL = s.url; + + // More options handling for requests with no content + if (!s.hasContent) { + + // If data is available, append data to url + if (s.data) { + cacheURL = (s.url += (ajax_rquery.test(cacheURL) ? "&" : "?") + s.data); + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add anti-cache in url if needed + if (s.cache === false) { + s.url = rts.test(cacheURL) ? + + // If there is already a '_' parameter, set its value + cacheURL.replace(rts, "$1_=" + ajax_nonce++) : + + // Otherwise add one to the end + cacheURL + (ajax_rquery.test(cacheURL) ? "&" : "?") + "_=" + ajax_nonce++; + } + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if (s.ifModified) { + if (jQuery.lastModified[cacheURL]) { + jqXHR.setRequestHeader("If-Modified-Since", jQuery.lastModified[cacheURL]); + } + if (jQuery.etag[cacheURL]) { + jqXHR.setRequestHeader("If-None-Match", jQuery.etag[cacheURL]); + } + } + + // Set the correct header, if data is being sent + if (s.data && s.hasContent && s.contentType !== false || options.contentType) { + jqXHR.setRequestHeader("Content-Type", s.contentType); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? + s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== "*" ? ", " + allTypes + "; q=0.01" : "") : + s.accepts["*"] + ); + + // Check for headers option + for (i in s.headers) { + jqXHR.setRequestHeader(i, s.headers[i]); + } + + // Allow custom headers/mimetypes and early abort + if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || state === 2)) { + // Abort if not done already and return + return jqXHR.abort(); + } + + // aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + for (i in { success: 1, error: 1, complete: 1 }) { + jqXHR[i](s[i]); + } + + // Get transport + transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); + + // If no transport, we auto-abort + if (!transport) { + done(-1, "No Transport"); + } else { + jqXHR.readyState = 1; + + // Send global event + if (fireGlobals) { + globalEventContext.trigger("ajaxSend", [jqXHR, s]); + } + // Timeout + if (s.async && s.timeout > 0) { + timeoutTimer = setTimeout(function () { + jqXHR.abort("timeout"); + }, s.timeout); + } + + try { + state = 1; + transport.send(requestHeaders, done); + } catch (e) { + // Propagate exception as error if not done + if (state < 2) { + done(-1, e); + // Simply rethrow otherwise + } else { + throw e; + } + } + } + + // Callback for when everything is done + function done(status, nativeStatusText, responses, headers) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Called once + if (state === 2) { + return; + } + + // State is "done" now + state = 2; + + // Clear timeout if it exists + if (timeoutTimer) { + clearTimeout(timeoutTimer); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if (responses) { + response = ajaxHandleResponses(s, jqXHR, responses); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert(s, response, jqXHR, isSuccess); + + // If successful, handle type chaining + if (isSuccess) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if (s.ifModified) { + modified = jqXHR.getResponseHeader("Last-Modified"); + if (modified) { + jQuery.lastModified[cacheURL] = modified; + } + modified = jqXHR.getResponseHeader("etag"); + if (modified) { + jQuery.etag[cacheURL] = modified; + } + } + + // if no content + if (status === 204) { + statusText = "nocontent"; + + // if not modified + } else if (status === 304) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + // We extract error from statusText + // then normalize statusText and status for non-aborts + error = statusText; + if (status || !statusText) { + statusText = "error"; + if (status < 0) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = (nativeStatusText || statusText) + ""; + + // Success/Error + if (isSuccess) { + deferred.resolveWith(callbackContext, [success, statusText, jqXHR]); + } else { + deferred.rejectWith(callbackContext, [jqXHR, statusText, error]); + } + + // Status-dependent callbacks + jqXHR.statusCode(statusCode); + statusCode = undefined; + + if (fireGlobals) { + globalEventContext.trigger(isSuccess ? "ajaxSuccess" : "ajaxError", + [jqXHR, s, isSuccess ? success : error]); + } + + // Complete + completeDeferred.fireWith(callbackContext, [jqXHR, statusText]); + + if (fireGlobals) { + globalEventContext.trigger("ajaxComplete", [jqXHR, s]); + // Handle the global AJAX counter + if (!(--jQuery.active)) { + jQuery.event.trigger("ajaxStop"); + } + } + } + + return jqXHR; + }; + jQuery.ajaxPrefilter = function (dataTypeExpression, func) { + /// + /// Handle custom Ajax options or modify existing options before each request is sent and before they are processed by $.ajax(). + /// + /// + /// An optional string containing one or more space-separated dataTypes + /// + /// + /// A handler to set default values for future Ajax requests. + /// + /// + + + if (typeof dataTypeExpression !== "string") { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match(core_rnotwhite) || []; + + if (jQuery.isFunction(func)) { + // For each dataType in the dataTypeExpression + while ((dataType = dataTypes[i++])) { + // Prepend if requested + if (dataType[0] === "+") { + dataType = dataType.slice(1) || "*"; + (structure[dataType] = structure[dataType] || []).unshift(func); + + // Otherwise append + } else { + (structure[dataType] = structure[dataType] || []).push(func); + } + } + } + }; + jQuery.ajaxSettings = { + "url": 'http://localhost:25812/?ver=3.1.0&newLineMethod=xml', + "type": 'GET', + "isLocal": false, + "global": true, + "processData": true, + "async": true, + "contentType": 'application/x-www-form-urlencoded; charset=UTF-8', + "accepts": {}, + "contents": {}, + "responseFields": {}, + "converters": {}, + "flatOptions": {}, + "jsonp": 'callback' + }; + jQuery.ajaxSetup = function (target, settings) { + /// + /// Set default values for future Ajax requests. Its use is not recommended. + /// + /// + /// A set of key/value pairs that configure the default Ajax request. All options are optional. + /// + + return settings ? + + // Building a settings object + ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : + + // Extending ajaxSettings + ajaxExtend(jQuery.ajaxSettings, target); + }; + jQuery.ajaxTransport = function (dataTypeExpression, func) { + /// + /// Creates an object that handles the actual transmission of Ajax data. + /// + /// + /// A string identifying the data type to use + /// + /// + /// A handler to return the new transport object to use with the data type provided in the first argument. + /// + /// + + + if (typeof dataTypeExpression !== "string") { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match(core_rnotwhite) || []; + + if (jQuery.isFunction(func)) { + // For each dataType in the dataTypeExpression + while ((dataType = dataTypes[i++])) { + // Prepend if requested + if (dataType[0] === "+") { + dataType = dataType.slice(1) || "*"; + (structure[dataType] = structure[dataType] || []).unshift(func); + + // Otherwise append + } else { + (structure[dataType] = structure[dataType] || []).push(func); + } + } + } + }; + jQuery.attr = function (elem, name, value) { + + var hooks, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if (!elem || nType === 3 || nType === 8 || nType === 2) { + return; + } + + // Fallback to prop when attributes are not supported + if (typeof elem.getAttribute === core_strundefined) { + return jQuery.prop(elem, name, value); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if (nType !== 1 || !jQuery.isXMLDoc(elem)) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[name] || + (jQuery.expr.match.boolean.test(name) ? boolHook : nodeHook); + } + + if (value !== undefined) { + + if (value === null) { + jQuery.removeAttr(elem, name); + + } else if (hooks && "set" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) { + return ret; + + } else { + elem.setAttribute(name, value + ""); + return value; + } + + } else if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) { + return ret; + + } else { + ret = jQuery.find.attr(elem, name); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }; + jQuery.attrHooks = { "type": {} }; + jQuery.buildFragment = function (elems, context, scripts, selection) { + + var elem, tmp, tag, wrap, contains, j, + i = 0, + l = elems.length, + fragment = context.createDocumentFragment(), + nodes = []; + + for (; i < l; i++) { + elem = elems[i]; + + if (elem || elem === 0) { + + // Add nodes directly + if (jQuery.type(elem) === "object") { + // Support: QtWebKit + // jQuery.merge because core_push.apply(_, arraylike) throws + jQuery.merge(nodes, elem.nodeType ? [elem] : elem); + + // Convert non-html into a text node + } else if (!rhtml.test(elem)) { + nodes.push(context.createTextNode(elem)); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild(context.createElement("div")); + + // Deserialize a standard representation + tag = (rtagName.exec(elem) || ["", ""])[1].toLowerCase(); + wrap = wrapMap[tag] || wrapMap._default; + tmp.innerHTML = wrap[1] + elem.replace(rxhtmlTag, "<$1>") + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while (j--) { + tmp = tmp.firstChild; + } + + // Support: QtWebKit + // jQuery.merge because core_push.apply(_, arraylike) throws + jQuery.merge(nodes, tmp.childNodes); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Fixes #12346 + // Support: Webkit, IE + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ((elem = nodes[i++])) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if (selection && jQuery.inArray(elem, selection) !== -1) { + continue; + } + + contains = jQuery.contains(elem.ownerDocument, elem); + + // Append to fragment + tmp = getAll(fragment.appendChild(elem), "script"); + + // Preserve script evaluation history + if (contains) { + setGlobalEval(tmp); + } + + // Capture executables + if (scripts) { + j = 0; + while ((elem = tmp[j++])) { + if (rscriptType.test(elem.type || "")) { + scripts.push(elem); + } + } + } + } + + return fragment; + }; + jQuery.camelCase = function (string) { + + return string.replace(rmsPrefix, "ms-").replace(rdashAlpha, fcamelCase); + }; + jQuery.cleanData = function (elems) { + + var data, elem, type, + l = elems.length, + i = 0, + special = jQuery.event.special; + + for (; i < l; i++) { + elem = elems[i]; + + if (jQuery.acceptData(elem)) { + + data = data_priv.access(elem); + + if (data) { + for (type in data.events) { + if (special[type]) { + jQuery.event.remove(elem, type); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent(elem, type, data.handle); + } + } + } + } + // Discard any remaining `private` and `user` data + // One day we'll replace the dual arrays with a WeakMap and this won't be an issue. + // (Splices the data objects out of the internal cache arrays) + data_user.discard(elem); + data_priv.discard(elem); + } + }; + jQuery.clone = function (elem, dataAndEvents, deepDataAndEvents) { + + var i, l, srcElements, destElements, + clone = elem.cloneNode(true), + inPage = jQuery.contains(elem.ownerDocument, elem); + + // Support: IE >= 9 + // Fix Cloning issues + if (!jQuery.support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll(clone); + srcElements = getAll(elem); + + for (i = 0, l = srcElements.length; i < l; i++) { + fixInput(srcElements[i], destElements[i]); + } + } + + // Copy the events from the original to the clone + if (dataAndEvents) { + if (deepDataAndEvents) { + srcElements = srcElements || getAll(elem); + destElements = destElements || getAll(clone); + + for (i = 0, l = srcElements.length; i < l; i++) { + cloneCopyEvent(srcElements[i], destElements[i]); + } + } else { + cloneCopyEvent(elem, clone); + } + } + + // Preserve script evaluation history + destElements = getAll(clone, "script"); + if (destElements.length > 0) { + setGlobalEval(destElements, !inPage && getAll(elem, "script")); + } + + // Return the cloned set + return clone; + }; + jQuery.contains = function (context, elem) { + /// + /// Check to see if a DOM element is a descendant of another DOM element. + /// + /// + /// The DOM element that may contain the other element. + /// + /// + /// The DOM element that may be contained by (a descendant of) the other element. + /// + /// + + // Set document vars if needed + if ((context.ownerDocument || context) !== document) { + setDocument(context); + } + return contains(context, elem); + }; + jQuery.css = function (elem, name, extra, styles) { + + var val, num, hooks, + origName = jQuery.camelCase(name); + + // Make sure that we're working with the right name + name = jQuery.cssProps[origName] || (jQuery.cssProps[origName] = vendorPropName(elem.style, origName)); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; + + // If a hook was provided get the computed value from there + if (hooks && "get" in hooks) { + val = hooks.get(elem, true, extra); + } + + // Otherwise, if a way to get the computed value exists, use that + if (val === undefined) { + val = curCSS(elem, name, styles); + } + + //convert "normal" to computed value + if (val === "normal" && name in cssNormalTransform) { + val = cssNormalTransform[name]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if (extra === "" || extra) { + num = parseFloat(val); + return extra === true || jQuery.isNumeric(num) ? num || 0 : val; + } + return val; + }; + jQuery.cssHooks = { + "opacity": {}, + "height": {}, + "width": {}, + "margin": {}, + "padding": {}, + "borderWidth": {}, + "top": {}, + "left": {} + }; + jQuery.cssNumber = { + "columnCount": true, + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }; + jQuery.cssProps = { + "float": 'cssFloat', + "display": 'display', + "visibility": 'visibility' + }; + jQuery.data = function (elem, name, data) { + /// + /// 1: Store arbitrary data associated with the specified element. Returns the value that was set. + /// 1.1 - jQuery.data(element, key, value) + /// 2: Returns value at named data store for the element, as set by jQuery.data(element, name, value), or the full data store for the element. + /// 2.1 - jQuery.data(element, key) + /// 2.2 - jQuery.data(element) + /// + /// + /// The DOM element to associate with the data. + /// + /// + /// A string naming the piece of data to set. + /// + /// + /// The new data value. + /// + /// + + return data_user.access(elem, name, data); + }; + jQuery.dequeue = function (elem, type) { + /// + /// Execute the next function on the queue for the matched element. + /// + /// + /// A DOM element from which to remove and execute a queued function. + /// + /// + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + + type = type || "fx"; + + var queue = jQuery.queue(elem, type), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks(elem, type), + next = function () { + jQuery.dequeue(elem, type); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if (fn === "inprogress") { + fn = queue.shift(); + startLength--; + } + + hooks.cur = fn; + if (fn) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if (type === "fx") { + queue.unshift("inprogress"); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call(elem, next, hooks); + } + + if (!startLength && hooks) { + hooks.empty.fire(); + } + }; + jQuery.dir = function (elem, dir, until) { + + var matched = [], + truncate = until !== undefined; + + while ((elem = elem[dir]) && elem.nodeType !== 9) { + if (elem.nodeType === 1) { + if (truncate && jQuery(elem).is(until)) { + break; + } + matched.push(elem); + } + } + return matched; + }; + jQuery.each = function (obj, callback, args) { + /// + /// A generic iterator function, which can be used to seamlessly iterate over both objects and arrays. Arrays and array-like objects with a length property (such as a function's arguments object) are iterated by numeric index, from 0 to length-1. Other objects are iterated via their named properties. + /// + /// + /// The object or array to iterate over. + /// + /// + /// The function that will be executed on every object. + /// + /// + + var value, + i = 0, + length = obj.length, + isArray = isArraylike(obj); + + if (args) { + if (isArray) { + for (; i < length; i++) { + value = callback.apply(obj[i], args); + + if (value === false) { + break; + } + } + } else { + for (i in obj) { + value = callback.apply(obj[i], args); + + if (value === false) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if (isArray) { + for (; i < length; i++) { + value = callback.call(obj[i], i, obj[i]); + + if (value === false) { + break; + } + } + } else { + for (i in obj) { + value = callback.call(obj[i], i, obj[i]); + + if (value === false) { + break; + } + } + } + } + + return obj; + }; + jQuery.easing = {}; + jQuery.error = function (msg) { + /// + /// Takes a string and throws an exception containing it. + /// + /// + /// The message to send out. + /// + + throw new Error(msg); + }; + jQuery.etag = {}; + jQuery.event = { + "global": {}, + "props": ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'relatedTarget', 'shiftKey', 'target', 'timeStamp', 'view', 'which'], + "fixHooks": {}, + "keyHooks": {}, + "mouseHooks": {}, + "special": {}, + "triggered": {} + }; + jQuery.expr = { + "cacheLength": 50, + "match": {}, + "attrHandle": {}, + "find": {}, + "relative": {}, + "preFilter": {}, + "filter": {}, + "pseudos": {}, + "filters": {}, + "setFilters": {}, + ":": {} + }; + jQuery.extend = function () { + /// + /// Merge the contents of two or more objects together into the first object. + /// 1 - jQuery.extend(target, object1, objectN) + /// 2 - jQuery.extend(deep, target, object1, objectN) + /// + /// + /// If true, the merge becomes recursive (aka. deep copy). + /// + /// + /// The object to extend. It will receive the new properties. + /// + /// + /// An object containing additional properties to merge in. + /// + /// + /// Additional objects containing properties to merge in. + /// + /// + + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if (typeof target === "boolean") { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if (typeof target !== "object" && !jQuery.isFunction(target)) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if (length === i) { + target = this; + --i; + } + + for (; i < length; i++) { + // Only deal with non-null/undefined values + if ((options = arguments[i]) != null) { + // Extend the base object + for (name in options) { + src = target[name]; + copy = options[name]; + + // Prevent never-ending loop + if (target === copy) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)))) { + if (copyIsArray) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[name] = jQuery.extend(deep, clone, copy); + + // Don't bring in undefined values + } else if (copy !== undefined) { + target[name] = copy; + } + } + } + } + + // Return the modified object + return target; + }; + jQuery.filter = function (expr, elems, not) { + + var elem = elems[0]; + + if (not) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector(elem, expr) ? [elem] : [] : + jQuery.find.matches(expr, jQuery.grep(elems, function (elem) { + return elem.nodeType === 1; + })); + }; + jQuery.find = function Sizzle(selector, context, results, seed) { + + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ((context ? context.ownerDocument || context : preferredDoc) !== document) { + setDocument(context); + } + + context = context || document; + results = results || []; + + if (!selector || typeof selector !== "string") { + return results; + } + + if ((nodeType = context.nodeType) !== 1 && nodeType !== 9) { + return []; + } + + if (documentIsHTML && !seed) { + + // Shortcuts + if ((match = rquickExpr.exec(selector))) { + // Speed-up: Sizzle("#ID") + if ((m = match[1])) { + if (nodeType === 9) { + elem = context.getElementById(m); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if (elem && elem.parentNode) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if (elem.id === m) { + results.push(elem); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if (context.ownerDocument && (elem = context.ownerDocument.getElementById(m)) && + contains(context, elem) && elem.id === m) { + results.push(elem); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if (match[2]) { + push.apply(results, context.getElementsByTagName(selector)); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) { + push.apply(results, context.getElementsByClassName(m)); + return results; + } + } + + // QSA path + if (support.qsa && (!rbuggyQSA || !rbuggyQSA.test(selector))) { + nid = old = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if (nodeType === 1 && context.nodeName.toLowerCase() !== "object") { + groups = tokenize(selector); + + if ((old = context.getAttribute("id"))) { + nid = old.replace(rescape, "\\$&"); + } else { + context.setAttribute("id", nid); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while (i--) { + groups[i] = nid + toSelector(groups[i]); + } + newContext = rsibling.test(selector) && context.parentNode || context; + newSelector = groups.join(","); + } + + if (newSelector) { + try { + push.apply(results, + newContext.querySelectorAll(newSelector) + ); + return results; + } catch (qsaError) { + } finally { + if (!old) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select(selector.replace(rtrim, "$1"), context, results, seed); + }; + jQuery.fn = { + "jquery": '3.2.1', + "selector": '', + "length": 0 + }; + jQuery.fx = function (elem, options, prop, end, easing, unit) { + + this.elem = elem; + this.prop = prop; + this.easing = easing || "swing"; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || (jQuery.cssNumber[prop] ? "" : "px"); + }; + jQuery.get = function (url, data, callback, type) { + /// + /// Load data from the server using a HTTP GET request. + /// + /// + /// A string containing the URL to which the request is sent. + /// + /// + /// A plain object or string that is sent to the server with the request. + /// + /// + /// A callback function that is executed if the request succeeds. + /// + /// + /// The type of data expected from the server. Default: Intelligent Guess (xml, json, script, or html). + /// + + // shift arguments if data argument was omitted + if (jQuery.isFunction(data)) { + type = type || callback; + callback = data; + data = undefined; + } + + return jQuery.ajax({ + url: url, + type: method, + dataType: type, + data: data, + success: callback + }); + }; + jQuery.getJSON = function (url, data, callback) { + /// + /// Load JSON-encoded data from the server using a GET HTTP request. + /// + /// + /// A string containing the URL to which the request is sent. + /// + /// + /// A plain object or string that is sent to the server with the request. + /// + /// + /// A callback function that is executed if the request succeeds. + /// + + return jQuery.get(url, data, callback, "json"); + }; + jQuery.getScript = function (url, callback) { + /// + /// Load a JavaScript file from the server using a GET HTTP request, then execute it. + /// + /// + /// A string containing the URL to which the request is sent. + /// + /// + /// A callback function that is executed if the request succeeds. + /// + + return jQuery.get(url, undefined, callback, "script"); + }; + jQuery.globalEval = function (code) { + /// + /// Execute some JavaScript code globally. + /// + /// + /// The JavaScript code to execute. + /// + + var script, + indirect = eval; + + code = jQuery.trim(code); + + if (code) { + // If the code includes a valid, prologue position + // strict mode pragma, execute code by injecting a + // script tag into the document. + if (code.indexOf("use strict") === 1) { + script = document.createElement("script"); + script.text = code; + document.head.appendChild(script).parentNode.removeChild(script); + } else { + // Otherwise, avoid the DOM node creation, insertion + // and removal by using an indirect global eval + indirect(code); + } + } + }; + jQuery.grep = function (elems, callback, inv) { + /// + /// Finds the elements of an array which satisfy a filter function. The original array is not affected. + /// + /// + /// The array to search through. + /// + /// + /// The function to process each item against. The first argument to the function is the item, and the second argument is the index. The function should return a Boolean value. this will be the global window object. + /// + /// + /// If "invert" is false, or not provided, then the function returns an array consisting of all elements for which "callback" returns true. If "invert" is true, then the function returns an array consisting of all elements for which "callback" returns false. + /// + /// + + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for (; i < length; i++) { + retVal = !!callback(elems[i], i); + if (inv !== retVal) { + ret.push(elems[i]); + } + } + + return ret; + }; + jQuery.guid = 1; + jQuery.hasData = function (elem) { + /// + /// Determine whether an element has any jQuery data associated with it. + /// + /// + /// A DOM element to be checked for data. + /// + /// + + return data_user.hasData(elem) || data_priv.hasData(elem); + }; + jQuery.holdReady = function (hold) { + /// + /// Holds or releases the execution of jQuery's ready event. + /// + /// + /// Indicates whether the ready hold is being requested or released + /// + /// + + if (hold) { + jQuery.readyWait++; + } else { + jQuery.ready(true); + } + }; + jQuery.inArray = function (elem, arr, i) { + /// + /// Search for a specified value within an array and return its index (or -1 if not found). + /// + /// + /// The value to search for. + /// + /// + /// An array through which to search. + /// + /// + /// The index of the array at which to begin the search. The default is 0, which will search the whole array. + /// + /// + + return arr == null ? -1 : core_indexOf.call(arr, elem, i); + }; + jQuery.isEmptyObject = function (obj) { + /// + /// Check to see if an object is empty (contains no enumerable properties). + /// + /// + /// The object that will be checked to see if it's empty. + /// + /// + + var name; + for (name in obj) { + return false; + } + return true; + }; + jQuery.isFunction = function (obj) { + /// + /// Determine if the argument passed is a Javascript function object. + /// + /// + /// Object to test whether or not it is a function. + /// + /// + + return jQuery.type(obj) === "function"; + }; + jQuery.isNumeric = function (obj) { + /// + /// Determines whether its argument is a number. + /// + /// + /// The value to be tested. + /// + /// + + return !isNaN(parseFloat(obj)) && isFinite(obj); + }; + jQuery.isPlainObject = function (obj) { + /// + /// Check to see if an object is a plain object (created using "{}" or "new Object"). + /// + /// + /// The object that will be checked to see if it's a plain object. + /// + /// + + // Not plain objects: + // - Any object or value whose internal [[Class]] property is not "[object Object]" + // - DOM nodes + // - window + if (jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow(obj)) { + return false; + } + + // Support: Firefox <20 + // The try/catch suppresses exceptions thrown when attempting to access + // the "constructor" property of certain host objects, ie. |window.location| + // https://bugzilla.mozilla.org/show_bug.cgi?id=814622 + try { + if (obj.constructor && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf")) { + return false; + } + } catch (e) { + return false; + } + + // If the function hasn't returned already, we're confident that + // |obj| is a plain object, created by {} or constructed with new Object + return true; + }; + jQuery.isReady = true; + jQuery.isWindow = function (obj) { + /// + /// Determine whether the argument is a window. + /// + /// + /// Object to test whether or not it is a window. + /// + /// + + return obj != null && obj === obj.window; + }; + jQuery.isXMLDoc = function (elem) { + /// + /// Check to see if a DOM node is within an XML document (or is an XML document). + /// + /// + /// The DOM node that will be checked to see if it's in an XML document. + /// + /// + + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; + }; + jQuery.lastModified = {}; + jQuery.makeArray = function (arr, results) { + /// + /// Convert an array-like object into a true JavaScript array. + /// + /// + /// Any object to turn into a native Array. + /// + /// + + var ret = results || []; + + if (arr != null) { + if (isArraylike(Object(arr))) { + jQuery.merge(ret, + typeof arr === "string" ? + [arr] : arr + ); + } else { + core_push.call(ret, arr); + } + } + + return ret; + }; + jQuery.map = function (elems, callback, arg) { + /// + /// Translate all items in an array or object to new array of items. + /// 1 - jQuery.map(array, callback(elementOfArray, indexInArray)) + /// 2 - jQuery.map(arrayOrObject, callback( value, indexOrKey )) + /// + /// + /// The Array to translate. + /// + /// + /// The function to process each item against. The first argument to the function is the array item, the second argument is the index in array The function can return any value. Within the function, this refers to the global (window) object. + /// + /// + + var value, + i = 0, + length = elems.length, + isArray = isArraylike(elems), + ret = []; + + // Go through the array, translating each of the items to their + if (isArray) { + for (; i < length; i++) { + value = callback(elems[i], i, arg); + + if (value != null) { + ret[ret.length] = value; + } + } + + // Go through every key on the object, + } else { + for (i in elems) { + value = callback(elems[i], i, arg); + + if (value != null) { + ret[ret.length] = value; + } + } + } + + // Flatten any nested arrays + return core_concat.apply([], ret); + }; + jQuery.merge = function (first, second) { + /// + /// Merge the contents of two arrays together into the first array. + /// + /// + /// The first array to merge, the elements of second added. + /// + /// + /// The second array to merge into the first, unaltered. + /// + /// + + var l = second.length, + i = first.length, + j = 0; + + if (typeof l === "number") { + for (; j < l; j++) { + first[i++] = second[j]; + } + } else { + while (second[j] !== undefined) { + first[i++] = second[j++]; + } + } + + first.length = i; + + return first; + }; + jQuery.noConflict = function (deep) { + /// + /// Relinquish jQuery's control of the $ variable. + /// + /// + /// A Boolean indicating whether to remove all jQuery variables from the global scope (including jQuery itself). + /// + /// + + if (window.$ === jQuery) { + window.$ = _$; + } + + if (deep && window.jQuery === jQuery) { + window.jQuery = _jQuery; + } + + return jQuery; + }; + jQuery.nodeName = function (elem, name) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }; + jQuery.noop = function () { + /// + /// An empty function. + /// + /// + }; + jQuery.offset = {}; + jQuery.param = function (a, traditional) { + /// + /// Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request. + /// 1 - jQuery.param(obj) + /// 2 - jQuery.param(obj, traditional) + /// + /// + /// An array or object to serialize. + /// + /// + /// A Boolean indicating whether to perform a traditional "shallow" serialization. + /// + /// + + var prefix, + s = [], + add = function (key, value) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction(value) ? value() : (value == null ? "" : value); + s[s.length] = encodeURIComponent(key) + "=" + encodeURIComponent(value); + }; + + // Set traditional to true for jQuery <= 1.3.2 behavior. + if (traditional === undefined) { + traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; + } + + // If an array was passed in, assume that it is an array of form elements. + if (jQuery.isArray(a) || (a.jquery && !jQuery.isPlainObject(a))) { + // Serialize the form elements + jQuery.each(a, function () { + add(this.name, this.value); + }); + + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for (prefix in a) { + buildParams(prefix, a[prefix], traditional, add); + } + } + + // Return the resulting serialization + return s.join("&").replace(r20, "+"); + }; + jQuery.parseHTML = function (data, context, keepScripts) { + /// + /// Parses a string into an array of DOM nodes. + /// + /// + /// HTML string to be parsed + /// + /// + /// DOM element to serve as the context in which the HTML fragment will be created + /// + /// + /// A Boolean indicating whether to include scripts passed in the HTML string + /// + /// + + if (!data || typeof data !== "string") { + return null; + } + if (typeof context === "boolean") { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec(data), + scripts = !keepScripts && []; + + // Single tag + if (parsed) { + return [context.createElement(parsed[1])]; + } + + parsed = jQuery.buildFragment([data], context, scripts); + + if (scripts) { + jQuery(scripts).remove(); + } + + return jQuery.merge([], parsed.childNodes); + }; + jQuery.parseXML = function (data) { + /// + /// Parses a string into an XML document. + /// + /// + /// a well-formed XML string to be parsed + /// + /// + + var xml, tmp; + if (!data || typeof data !== "string") { + return null; + } + + // Support: IE9 + try { + tmp = new DOMParser(); + xml = tmp.parseFromString(data, "text/xml"); + } catch (e) { + xml = undefined; + } + + if (!xml || xml.getElementsByTagName("parsererror").length) { + jQuery.error("Invalid XML: " + data); + } + return xml; + }; + jQuery.post = function (url, data, callback, type) { + /// + /// Load data from the server using a HTTP POST request. + /// + /// + /// A string containing the URL to which the request is sent. + /// + /// + /// A plain object or string that is sent to the server with the request. + /// + /// + /// A callback function that is executed if the request succeeds. + /// + /// + /// The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html). + /// + + // shift arguments if data argument was omitted + if (jQuery.isFunction(data)) { + type = type || callback; + callback = data; + data = undefined; + } + + return jQuery.ajax({ + url: url, + type: method, + dataType: type, + data: data, + success: callback + }); + }; + jQuery.prop = function (elem, name, value) { + + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if (!elem || nType === 3 || nType === 8 || nType === 2) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc(elem); + + if (notxml) { + // Fix name and attach hooks + name = jQuery.propFix[name] || name; + hooks = jQuery.propHooks[name]; + } + + if (value !== undefined) { + return hooks && "set" in hooks && (ret = hooks.set(elem, value, name)) !== undefined ? + ret : + (elem[name] = value); + + } else { + return hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null ? + ret : + elem[name]; + } + }; + jQuery.propFix = { + "for": 'htmlFor', + "class": 'className', + "tabindex": {}, + "readonly": {}, + "maxlength": {}, + "cellspacing": {}, + "cellpadding": {}, + "rowspan": {}, + "colspan": {}, + "usemap": {}, + "frameborder": {}, + "contenteditable": {} + }; + jQuery.propHooks = { "tabIndex": {} }; + jQuery.proxy = function (fn, context) { + /// + /// Takes a function and returns a new one that will always have a particular context. + /// 1 - jQuery.proxy(function, context) + /// 2 - jQuery.proxy(context, name) + /// 3 - jQuery.proxy(function, context, additionalArguments) + /// 4 - jQuery.proxy(context, name, additionalArguments) + /// + /// + /// The function whose context will be changed. + /// + /// + /// The object to which the context (this) of the function should be set. + /// + /// + /// Any number of arguments to be passed to the function referenced in the function argument. + /// + /// + + var tmp, args, proxy; + + if (typeof context === "string") { + tmp = fn[context]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if (!jQuery.isFunction(fn)) { + return undefined; + } + + // Simulated bind + args = core_slice.call(arguments, 2); + proxy = function () { + return fn.apply(context || this, args.concat(core_slice.call(arguments))); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }; + jQuery.queue = function (elem, type, data) { + /// + /// 1: Show the queue of functions to be executed on the matched element. + /// 1.1 - jQuery.queue(element, queueName) + /// 2: Manipulate the queue of functions to be executed on the matched element. + /// 2.1 - jQuery.queue(element, queueName, newQueue) + /// 2.2 - jQuery.queue(element, queueName, callback()) + /// + /// + /// A DOM element where the array of queued functions is attached. + /// + /// + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + /// An array of functions to replace the current queue contents. + /// + /// + + var queue; + + if (elem) { + type = (type || "fx") + "queue"; + queue = data_priv.get(elem, type); + + // Speed up dequeue by getting out quickly if this is just a lookup + if (data) { + if (!queue || jQuery.isArray(data)) { + queue = data_priv.access(elem, type, jQuery.makeArray(data)); + } else { + queue.push(data); + } + } + return queue || []; + } + }; + jQuery.ready = function (wait) { + + + // Abort if there are pending holds or we're already ready + if (wait === true ? --jQuery.readyWait : jQuery.isReady) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if (wait !== true && --jQuery.readyWait > 0) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith(document, [jQuery]); + + // Trigger any bound ready events + if (jQuery.fn.trigger) { + jQuery(document).trigger("ready").off("ready"); + } + }; + jQuery.readyWait = 0; + jQuery.removeAttr = function (elem, value) { + + var name, propName, + i = 0, + attrNames = value && value.match(core_rnotwhite); + + if (attrNames && elem.nodeType === 1) { + while ((name = attrNames[i++])) { + propName = jQuery.propFix[name] || name; + + // Boolean attributes get special treatment (#10870) + if (jQuery.expr.match.boolean.test(name)) { + // Set corresponding property to false + elem[propName] = false; + } + + elem.removeAttribute(name); + } + } + }; + jQuery.removeData = function (elem, name) { + /// + /// Remove a previously-stored piece of data. + /// + /// + /// A DOM element from which to remove data. + /// + /// + /// A string naming the piece of data to remove. + /// + /// + + data_user.remove(elem, name); + }; + jQuery.removeEvent = function (elem, type, handle) { + + if (elem.removeEventListener) { + elem.removeEventListener(type, handle, false); + } + }; + jQuery.sibling = function (n, elem) { + + var matched = []; + + for (; n; n = n.nextSibling) { + if (n.nodeType === 1 && n !== elem) { + matched.push(n); + } + } + + return matched; + }; + jQuery.speed = function (speed, easing, fn) { + + var opt = speed && typeof speed === "object" ? jQuery.extend({}, speed) : { + complete: fn || !fn && easing || + jQuery.isFunction(speed) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction(easing) && easing + }; + + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : + opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.duration] : jQuery.fx.speeds._default; + + // normalize opt.queue - true/undefined/null -> "fx" + if (opt.queue == null || opt.queue === true) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function () { + if (jQuery.isFunction(opt.old)) { + opt.old.call(this); + } + + if (opt.queue) { + jQuery.dequeue(this, opt.queue); + } + }; + + return opt; + }; + jQuery.style = function (elem, name, value, extra) { + + // Don't set styles on text and comment nodes + if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase(name), + style = elem.style; + + name = jQuery.cssProps[origName] || (jQuery.cssProps[origName] = vendorPropName(style, origName)); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; + + // Check if we're setting a value + if (value !== undefined) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if (type === "string" && (ret = rrelNum.exec(value))) { + value = (ret[1] + 1) * ret[2] + parseFloat(jQuery.css(elem, name)); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if (value == null || type === "number" && isNaN(value)) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if (type === "number" && !jQuery.cssNumber[origName]) { + value += "px"; + } + + // Fixes #8908, it can be done more correctly by specifying setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if (!jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0) { + style[name] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if (!hooks || !("set" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) { + style[name] = value; + } + + } else { + // If a hook was provided get the non-computed value from there + if (hooks && "get" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) { + return ret; + } + + // Otherwise just get the value from the style object + return style[name]; + } + }; + jQuery.support = { + "checkOn": true, + "optSelected": true, + "reliableMarginRight": true, + "boxSizingReliable": true, + "pixelPosition": false, + "noCloneChecked": true, + "optDisabled": true, + "radioValue": true, + "checkClone": true, + "focusinBubbles": false, + "clearCloneStyle": true, + "cors": true, + "ajax": true, + "boxSizing": true + }; + jQuery.swap = function (elem, options, callback, args) { + + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for (name in options) { + old[name] = elem.style[name]; + elem.style[name] = options[name]; + } + + ret = callback.apply(elem, args || []); + + // Revert the old values + for (name in options) { + elem.style[name] = old[name]; + } + + return ret; + }; + jQuery.text = function (elem) { + + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if (!nodeType) { + // If no nodeType, this is expected to be an array + for (; (node = elem[i]) ; i++) { + // Do not traverse comment nodes + ret += getText(node); + } + } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if (typeof elem.textContent === "string") { + return elem.textContent; + } else { + // Traverse its children + for (elem = elem.firstChild; elem; elem = elem.nextSibling) { + ret += getText(elem); + } + } + } else if (nodeType === 3 || nodeType === 4) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; + }; + jQuery.trim = function (text) { + /// + /// Remove the whitespace from the beginning and end of a string. + /// + /// + /// The string to trim. + /// + /// + + return text == null ? "" : core_trim.call(text); + }; + jQuery.type = function (obj) { + /// + /// Determine the internal JavaScript [[Class]] of an object. + /// + /// + /// Object to get the internal JavaScript [[Class]] of. + /// + /// + + if (obj == null) { + return String(obj); + } + // Support: Safari <= 5.1 (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[core_toString.call(obj)] || "object" : + typeof obj; + }; + jQuery.unique = function (results) { + /// + /// Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on arrays of DOM elements, not strings or numbers. + /// + /// + /// The Array of DOM elements. + /// + /// + + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice(0); + results.sort(sortOrder); + + if (hasDuplicate) { + while ((elem = results[i++])) { + if (elem === results[i]) { + j = duplicates.push(i); + } + } + while (j--) { + results.splice(duplicates[j], 1); + } + } + + return results; + }; + jQuery.valHooks = { + "option": {}, + "select": {}, + "radio": {}, + "checkbox": {} + }; + jQuery.when = function (subordinate /* , ..., subordinateN */) { + /// + /// Provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events. + /// + /// + /// One or more Deferred objects, or plain JavaScript objects. + /// + /// + + var i = 0, + resolveValues = core_slice.call(arguments), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || (subordinate && jQuery.isFunction(subordinate.promise)) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function (i, contexts, values) { + return function (value) { + contexts[i] = this; + values[i] = arguments.length > 1 ? core_slice.call(arguments) : value; + if (values === progressValues) { + deferred.notifyWith(contexts, values); + } else if (!(--remaining)) { + deferred.resolveWith(contexts, values); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if (length > 1) { + progressValues = new Array(length); + progressContexts = new Array(length); + resolveContexts = new Array(length); + for (; i < length; i++) { + if (resolveValues[i] && jQuery.isFunction(resolveValues[i].promise)) { + resolveValues[i].promise() + .done(updateFunc(i, resolveContexts, resolveValues)) + .fail(deferred.reject) + .progress(updateFunc(i, progressContexts, progressValues)); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if (!remaining) { + deferred.resolveWith(resolveContexts, resolveValues); + } + + return deferred.promise(); + }; + jQuery.Event.prototype.isDefaultPrevented = function returnFalse() { + /// + /// Returns whether event.preventDefault() was ever called on this event object. + /// + /// + + return false; + }; + jQuery.Event.prototype.isImmediatePropagationStopped = function returnFalse() { + /// + /// Returns whether event.stopImmediatePropagation() was ever called on this event object. + /// + /// + + return false; + }; + jQuery.Event.prototype.isPropagationStopped = function returnFalse() { + /// + /// Returns whether event.stopPropagation() was ever called on this event object. + /// + /// + + return false; + }; + jQuery.Event.prototype.preventDefault = function () { + /// + /// If this method is called, the default action of the event will not be triggered. + /// + /// + + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if (e && e.preventDefault) { + e.preventDefault(); + } + }; + jQuery.Event.prototype.stopImmediatePropagation = function () { + /// + /// Keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree. + /// + + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }; + jQuery.Event.prototype.stopPropagation = function () { + /// + /// Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. + /// + + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if (e && e.stopPropagation) { + e.stopPropagation(); + } + }; + jQuery.prototype.add = function (selector, context) { + /// + /// Add elements to the set of matched elements. + /// 1 - add(selector) + /// 2 - add(elements) + /// 3 - add(html) + /// 4 - add(jQuery object) + /// 5 - add(selector, context) + /// + /// + /// A string representing a selector expression to find additional elements to add to the set of matched elements. + /// + /// + /// The point in the document at which the selector should begin matching; similar to the context argument of the $(selector, context) method. + /// + /// + + var set = typeof selector === "string" ? + jQuery(selector, context) : + jQuery.makeArray(selector && selector.nodeType ? [selector] : selector), + all = jQuery.merge(this.get(), set); + + return this.pushStack(jQuery.unique(all)); + }; + jQuery.prototype.addBack = function (selector) { + /// + /// Add the previous set of elements on the stack to the current set, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match the current set of elements against. + /// + /// + + return this.add(selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + }; + jQuery.prototype.addClass = function (value) { + /// + /// Adds the specified class(es) to each of the set of matched elements. + /// 1 - addClass(className) + /// 2 - addClass(function(index, currentClass)) + /// + /// + /// One or more space-separated classes to be added to the class attribute of each matched element. + /// + /// + + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; + + if (jQuery.isFunction(value)) { + return this.each(function (j) { + jQuery(this).addClass(value.call(this, j, this.className)); + }); + } + + if (proceed) { + // The disjunction here is for better compressibility (see removeClass) + classes = (value || "").match(core_rnotwhite) || []; + + for (; i < len; i++) { + elem = this[i]; + cur = elem.nodeType === 1 && (elem.className ? + (" " + elem.className + " ").replace(rclass, " ") : + " " + ); + + if (cur) { + j = 0; + while ((clazz = classes[j++])) { + if (cur.indexOf(" " + clazz + " ") < 0) { + cur += clazz + " "; + } + } + elem.className = jQuery.trim(cur); + + } + } + } + + return this; + }; + jQuery.prototype.after = function () { + /// + /// Insert content, specified by the parameter, after each element in the set of matched elements. + /// 1 - after(content, content) + /// 2 - after(function(index)) + /// + /// + /// HTML string, DOM element, or jQuery object to insert after each element in the set of matched elements. + /// + /// + /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert after each element in the set of matched elements. + /// + /// + + return this.domManip(arguments, function (elem) { + if (this.parentNode) { + this.parentNode.insertBefore(elem, this.nextSibling); + } + }); + }; + jQuery.prototype.ajaxComplete = function (fn) { + /// + /// Register a handler to be called when Ajax requests complete. This is an AjaxEvent. + /// + /// + /// The function to be invoked. + /// + /// + + return this.on(type, fn); + }; + jQuery.prototype.ajaxError = function (fn) { + /// + /// Register a handler to be called when Ajax requests complete with an error. This is an Ajax Event. + /// + /// + /// The function to be invoked. + /// + /// + + return this.on(type, fn); + }; + jQuery.prototype.ajaxSend = function (fn) { + /// + /// Attach a function to be executed before an Ajax request is sent. This is an Ajax Event. + /// + /// + /// The function to be invoked. + /// + /// + + return this.on(type, fn); + }; + jQuery.prototype.ajaxStart = function (fn) { + /// + /// Register a handler to be called when the first Ajax request begins. This is an Ajax Event. + /// + /// + /// The function to be invoked. + /// + /// + + return this.on(type, fn); + }; + jQuery.prototype.ajaxStop = function (fn) { + /// + /// Register a handler to be called when all Ajax requests have completed. This is an Ajax Event. + /// + /// + /// The function to be invoked. + /// + /// + + return this.on(type, fn); + }; + jQuery.prototype.ajaxSuccess = function (fn) { + /// + /// Attach a function to be executed whenever an Ajax request completes successfully. This is an Ajax Event. + /// + /// + /// The function to be invoked. + /// + /// + + return this.on(type, fn); + }; + jQuery.prototype.andSelf = function (selector) { + /// + /// Add the previous set of elements on the stack to the current set. + /// + /// + + return this.add(selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + }; + jQuery.prototype.animate = function (prop, speed, easing, callback) { + /// + /// Perform a custom animation of a set of CSS properties. + /// 1 - animate(properties, duration, easing, complete) + /// 2 - animate(properties, options) + /// + /// + /// An object of CSS properties and values that the animation will move toward. + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + var empty = jQuery.isEmptyObject(prop), + optall = jQuery.speed(speed, easing, callback), + doAnimation = function () { + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation(this, jQuery.extend({}, prop), optall); + doAnimation.finish = function () { + anim.stop(true); + }; + // Empty animations, or finishing resolves immediately + if (empty || data_priv.get(this, "finish")) { + anim.stop(true); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each(doAnimation) : + this.queue(optall.queue, doAnimation); + }; + jQuery.prototype.append = function () { + /// + /// Insert content, specified by the parameter, to the end of each element in the set of matched elements. + /// 1 - append(content, content) + /// 2 - append(function(index, html)) + /// + /// + /// DOM element, HTML string, or jQuery object to insert at the end of each element in the set of matched elements. + /// + /// + /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the end of each element in the set of matched elements. + /// + /// + + return this.domManip(arguments, function (elem) { + if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { + var target = manipulationTarget(this, elem); + target.appendChild(elem); + } + }); + }; + jQuery.prototype.appendTo = function (selector) { + /// + /// Insert every element in the set of matched elements to the end of the target. + /// + /// + /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the end of the element(s) specified by this parameter. + /// + /// + + var elems, + ret = [], + insert = jQuery(selector), + last = insert.length - 1, + i = 0; + + for (; i <= last; i++) { + elems = i === last ? this : this.clone(true); + jQuery(insert[i])[original](elems); + + // Support: QtWebKit + // .get() because core_push.apply(_, arraylike) throws + core_push.apply(ret, elems.get()); + } + + return this.pushStack(ret); + }; + jQuery.prototype.attr = function (name, value) { + /// + /// 1: Get the value of an attribute for the first element in the set of matched elements. + /// 1.1 - attr(attributeName) + /// 2: Set one or more attributes for the set of matched elements. + /// 2.1 - attr(attributeName, value) + /// 2.2 - attr(attributes) + /// 2.3 - attr(attributeName, function(index, attr)) + /// + /// + /// The name of the attribute to set. + /// + /// + /// A value to set for the attribute. + /// + /// + + return jQuery.access(this, jQuery.attr, name, value, arguments.length > 1); + }; + jQuery.prototype.before = function () { + /// + /// Insert content, specified by the parameter, before each element in the set of matched elements. + /// 1 - before(content, content) + /// 2 - before(function) + /// + /// + /// HTML string, DOM element, or jQuery object to insert before each element in the set of matched elements. + /// + /// + /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert before each element in the set of matched elements. + /// + /// + + return this.domManip(arguments, function (elem) { + if (this.parentNode) { + this.parentNode.insertBefore(elem, this); + } + }); + }; + jQuery.prototype.bind = function (types, data, fn) { + /// + /// Attach a handler to an event for the elements. + /// 1 - bind(eventType, eventData, handler(eventObject)) + /// 2 - bind(eventType, eventData, preventBubble) + /// 3 - bind(events) + /// + /// + /// A string containing one or more DOM event types, such as "click" or "submit," or custom event names. + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return this.on(types, null, data, fn); + }; + jQuery.prototype.blur = function (data, fn) { + /// + /// Bind an event handler to the "blur" JavaScript event, or trigger that event on an element. + /// 1 - blur(handler(eventObject)) + /// 2 - blur(eventData, handler(eventObject)) + /// 3 - blur() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.change = function (data, fn) { + /// + /// Bind an event handler to the "change" JavaScript event, or trigger that event on an element. + /// 1 - change(handler(eventObject)) + /// 2 - change(eventData, handler(eventObject)) + /// 3 - change() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.children = function (until, selector) { + /// + /// Get the children of each element in the set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var matched = jQuery.map(this, fn, until); + + if (name.slice(-5) !== "Until") { + selector = until; + } + + if (selector && typeof selector === "string") { + matched = jQuery.filter(selector, matched); + } + + if (this.length > 1) { + // Remove duplicates + if (!guaranteedUnique[name]) { + jQuery.unique(matched); + } + + // Reverse order for parents* and prev* + if (name[0] === "p") { + matched.reverse(); + } + } + + return this.pushStack(matched); + }; + jQuery.prototype.clearQueue = function (type) { + /// + /// Remove from the queue all items that have not yet been run. + /// + /// + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + + return this.queue(type || "fx", []); + }; + jQuery.prototype.click = function (data, fn) { + /// + /// Bind an event handler to the "click" JavaScript event, or trigger that event on an element. + /// 1 - click(handler(eventObject)) + /// 2 - click(eventData, handler(eventObject)) + /// 3 - click() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.clone = function (dataAndEvents, deepDataAndEvents) { + /// + /// Create a deep copy of the set of matched elements. + /// 1 - clone(withDataAndEvents) + /// 2 - clone(withDataAndEvents, deepWithDataAndEvents) + /// + /// + /// A Boolean indicating whether event handlers and data should be copied along with the elements. The default value is false. *In jQuery 1.5.0 the default value was incorrectly true; it was changed back to false in 1.5.1 and up. + /// + /// + /// A Boolean indicating whether event handlers and data for all children of the cloned element should be copied. By default its value matches the first argument's value (which defaults to false). + /// + /// + + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map(function () { + return jQuery.clone(this, dataAndEvents, deepDataAndEvents); + }); + }; + jQuery.prototype.closest = function (selectors, context) { + /// + /// 1: For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree. + /// 1.1 - closest(selector) + /// 1.2 - closest(selector, context) + /// 1.3 - closest(jQuery object) + /// 1.4 - closest(element) + /// 2: Get an array of all the elements and selectors matched against the current element up through the DOM tree. + /// 2.1 - closest(selectors, context) + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + /// A DOM element within which a matching element may be found. If no context is passed in then the context of the jQuery set will be used instead. + /// + /// + + var cur, + i = 0, + l = this.length, + matched = [], + pos = (rneedsContext.test(selectors) || typeof selectors !== "string") ? + jQuery(selectors, context || this.context) : + 0; + + for (; i < l; i++) { + for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) { + // Always skip document fragments + if (cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors))) { + + cur = matched.push(cur); + break; + } + } + } + + return this.pushStack(matched.length > 1 ? jQuery.unique(matched) : matched); + }; + jQuery.prototype.constructor = function (selector, context) { + + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init(selector, context, rootjQuery); + }; + jQuery.prototype.contents = function (until, selector) { + /// + /// Get the children of each element in the set of matched elements, including text and comment nodes. + /// + /// + + var matched = jQuery.map(this, fn, until); + + if (name.slice(-5) !== "Until") { + selector = until; + } + + if (selector && typeof selector === "string") { + matched = jQuery.filter(selector, matched); + } + + if (this.length > 1) { + // Remove duplicates + if (!guaranteedUnique[name]) { + jQuery.unique(matched); + } + + // Reverse order for parents* and prev* + if (name[0] === "p") { + matched.reverse(); + } + } + + return this.pushStack(matched); + }; + jQuery.prototype.contextmenu = function (data, fn) { + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.css = function (name, value) { + /// + /// 1: Get the value of style properties for the first element in the set of matched elements. + /// 1.1 - css(propertyName) + /// 1.2 - css(propertyNames) + /// 2: Set one or more CSS properties for the set of matched elements. + /// 2.1 - css(propertyName, value) + /// 2.2 - css(propertyName, function(index, value)) + /// 2.3 - css(properties) + /// + /// + /// A CSS property name. + /// + /// + /// A value to set for the property. + /// + /// + + return jQuery.access(this, function (elem, name, value) { + var styles, len, + map = {}, + i = 0; + + if (jQuery.isArray(name)) { + styles = getStyles(elem); + len = name.length; + + for (; i < len; i++) { + map[name[i]] = jQuery.css(elem, name[i], false, styles); + } + + return map; + } + + return value !== undefined ? + jQuery.style(elem, name, value) : + jQuery.css(elem, name); + }, name, value, arguments.length > 1); + }; + jQuery.prototype.data = function (key, value) { + /// + /// 1: Store arbitrary data associated with the matched elements. + /// 1.1 - data(key, value) + /// 1.2 - data(obj) + /// 2: Return the value at the named data store for the first element in the jQuery collection, as set by data(name, value) or by an HTML5 data-* attribute. + /// 2.1 - data(key) + /// 2.2 - data() + /// + /// + /// A string naming the piece of data to set. + /// + /// + /// The new data value; it can be any Javascript type including Array or Object. + /// + /// + + var attrs, name, + elem = this[0], + i = 0, + data = null; + + // Gets all values + if (key === undefined) { + if (this.length) { + data = data_user.get(elem); + + if (elem.nodeType === 1 && !data_priv.get(elem, "hasDataAttrs")) { + attrs = elem.attributes; + for (; i < attrs.length; i++) { + name = attrs[i].name; + + if (name.indexOf("data-") === 0) { + name = jQuery.camelCase(name.substring(5)); + dataAttr(elem, name, data[name]); + } + } + data_priv.set(elem, "hasDataAttrs", true); + } + } + + return data; + } + + // Sets multiple values + if (typeof key === "object") { + return this.each(function () { + data_user.set(this, key); + }); + } + + return jQuery.access(this, function (value) { + var data, + camelKey = jQuery.camelCase(key); + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if (elem && value === undefined) { + // Attempt to get data from the cache + // with the key as-is + data = data_user.get(elem, key); + if (data !== undefined) { + return data; + } + + // Attempt to get data from the cache + // with the key camelized + data = data_user.get(elem, camelKey); + if (data !== undefined) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr(elem, camelKey, undefined); + if (data !== undefined) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each(function () { + // First, attempt to store a copy or reference of any + // data that might've been store with a camelCased key. + var data = data_user.get(this, camelKey); + + // For HTML5 data-* attribute interop, we have to + // store property names with dashes in a camelCase form. + // This might not apply to all properties...* + data_user.set(this, camelKey, value); + + // *... In the case of properties that might _actually_ + // have dashes, we need to also store a copy of that + // unchanged property. + if (key.indexOf("-") !== -1 && data !== undefined) { + data_user.set(this, key, value); + } + }); + }, null, value, arguments.length > 1, null, true); + }; + jQuery.prototype.dblclick = function (data, fn) { + /// + /// Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element. + /// 1 - dblclick(handler(eventObject)) + /// 2 - dblclick(eventData, handler(eventObject)) + /// 3 - dblclick() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.delay = function (time, type) { + /// + /// Set a timer to delay execution of subsequent items in the queue. + /// + /// + /// An integer indicating the number of milliseconds to delay execution of the next item in the queue. + /// + /// + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + + time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; + type = type || "fx"; + + return this.queue(type, function (next, hooks) { + var timeout = setTimeout(next, time); + hooks.stop = function () { + clearTimeout(timeout); + }; + }); + }; + jQuery.prototype.delegate = function (selector, types, data, fn) { + /// + /// Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. + /// 1 - delegate(selector, eventType, handler(eventObject)) + /// 2 - delegate(selector, eventType, eventData, handler(eventObject)) + /// 3 - delegate(selector, events) + /// + /// + /// A selector to filter the elements that trigger the event. + /// + /// + /// A string containing one or more space-separated JavaScript event types, such as "click" or "keydown," or custom event names. + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute at the time the event is triggered. + /// + /// + + return this.on(types, selector, data, fn); + }; + jQuery.prototype.dequeue = function (type) { + /// + /// Execute the next function on the queue for the matched elements. + /// + /// + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + + return this.each(function () { + jQuery.dequeue(this, type); + }); + }; + jQuery.prototype.detach = function (selector) { + /// + /// Remove the set of matched elements from the DOM. + /// + /// + /// A selector expression that filters the set of matched elements to be removed. + /// + /// + + return this.remove(selector, true); + }; + jQuery.prototype.domManip = function (args, callback, allowIntersection) { + + + // Flatten any nested arrays + args = core_concat.apply([], args); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction(value); + + // We can't cloneNode fragments that contain checked, in WebKit + if (isFunction || !(l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test(value))) { + return this.each(function (index) { + var self = set.eq(index); + if (isFunction) { + args[0] = value.call(this, index, self.html()); + } + self.domManip(args, callback, allowIntersection); + }); + } + + if (l) { + fragment = jQuery.buildFragment(args, this[0].ownerDocument, false, !allowIntersection && this); + first = fragment.firstChild; + + if (fragment.childNodes.length === 1) { + fragment = first; + } + + if (first) { + scripts = jQuery.map(getAll(fragment, "script"), disableScript); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for (; i < l; i++) { + node = fragment; + + if (i !== iNoClone) { + node = jQuery.clone(node, true, true); + + // Keep references to cloned scripts for later restoration + if (hasScripts) { + // Support: QtWebKit + // jQuery.merge because core_push.apply(_, arraylike) throws + jQuery.merge(scripts, getAll(node, "script")); + } + } + + callback.call(this[i], node, i); + } + + if (hasScripts) { + doc = scripts[scripts.length - 1].ownerDocument; + + // Reenable scripts + jQuery.map(scripts, restoreScript); + + // Evaluate executable scripts on first document insertion + for (i = 0; i < hasScripts; i++) { + node = scripts[i]; + if (rscriptType.test(node.type || "") && + !data_priv.access(node, "globalEval") && jQuery.contains(doc, node)) { + + if (node.src) { + // Hope ajax is available... + jQuery._evalUrl(node.src); + } else { + jQuery.globalEval(node.textContent.replace(rcleanScript, "")); + } + } + } + } + } + } + + return this; + }; + jQuery.prototype.each = function (callback, args) { + /// + /// Iterate over a jQuery object, executing a function for each matched element. + /// + /// + /// A function to execute for each matched element. + /// + /// + + return jQuery.each(this, callback, args); + }; + jQuery.prototype.empty = function () { + /// + /// Remove all child nodes of the set of matched elements from the DOM. + /// + /// + + var elem, + i = 0; + + for (; (elem = this[i]) != null; i++) { + if (elem.nodeType === 1) { + + // Prevent memory leaks + jQuery.cleanData(getAll(elem, false)); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }; + jQuery.prototype.end = function () { + /// + /// End the most recent filtering operation in the current chain and return the set of matched elements to its previous state. + /// + /// + + return this.prevObject || this.constructor(null); + }; + jQuery.prototype.eq = function (i) { + /// + /// Reduce the set of matched elements to the one at the specified index. + /// 1 - eq(index) + /// 2 - eq(-index) + /// + /// + /// An integer indicating the 0-based position of the element. + /// + /// + + var len = this.length, + j = +i + (i < 0 ? len : 0); + return this.pushStack(j >= 0 && j < len ? [this[j]] : []); + }; + jQuery.prototype.error = function (data, fn) { + /// + /// Bind an event handler to the "error" JavaScript event. + /// 1 - error(handler(eventObject)) + /// 2 - error(eventData, handler(eventObject)) + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.extend = function () { + + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if (typeof target === "boolean") { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if (typeof target !== "object" && !jQuery.isFunction(target)) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if (length === i) { + target = this; + --i; + } + + for (; i < length; i++) { + // Only deal with non-null/undefined values + if ((options = arguments[i]) != null) { + // Extend the base object + for (name in options) { + src = target[name]; + copy = options[name]; + + // Prevent never-ending loop + if (target === copy) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)))) { + if (copyIsArray) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[name] = jQuery.extend(deep, clone, copy); + + // Don't bring in undefined values + } else if (copy !== undefined) { + target[name] = copy; + } + } + } + } + + // Return the modified object + return target; + }; + jQuery.prototype.fadeIn = function (speed, easing, callback) { + /// + /// Display the matched elements by fading them to opaque. + /// 1 - fadeIn(duration, complete) + /// 2 - fadeIn(options) + /// 3 - fadeIn(duration, easing, complete) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return this.animate(props, speed, easing, callback); + }; + jQuery.prototype.fadeOut = function (speed, easing, callback) { + /// + /// Hide the matched elements by fading them to transparent. + /// 1 - fadeOut(duration, complete) + /// 2 - fadeOut(options) + /// 3 - fadeOut(duration, easing, complete) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return this.animate(props, speed, easing, callback); + }; + jQuery.prototype.fadeTo = function (speed, to, easing, callback) { + /// + /// Adjust the opacity of the matched elements. + /// 1 - fadeTo(duration, opacity, complete) + /// 2 - fadeTo(duration, opacity, easing, complete) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A number between 0 and 1 denoting the target opacity. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + + // show any hidden elements after setting opacity to 0 + return this.filter(isHidden).css("opacity", 0).show() + + // animate to the value specified + .end().animate({ opacity: to }, speed, easing, callback); + }; + jQuery.prototype.fadeToggle = function (speed, easing, callback) { + /// + /// Display or hide the matched elements by animating their opacity. + /// 1 - fadeToggle(duration, easing, complete) + /// 2 - fadeToggle(options) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return this.animate(props, speed, easing, callback); + }; + jQuery.prototype.filter = function (selector) { + /// + /// Reduce the set of matched elements to those that match the selector or pass the function's test. + /// 1 - filter(selector) + /// 2 - filter(function(index)) + /// 3 - filter(element) + /// 4 - filter(jQuery object) + /// + /// + /// A string containing a selector expression to match the current set of elements against. + /// + /// + + return this.pushStack(winnow(this, selector || [], false)); + }; + jQuery.prototype.find = function (selector) { + /// + /// Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element. + /// 1 - find(selector) + /// 2 - find(jQuery object) + /// 3 - find(element) + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var self, matched, i, + l = this.length; + + if (typeof selector !== "string") { + self = this; + return this.pushStack(jQuery(selector).filter(function () { + for (i = 0; i < l; i++) { + if (jQuery.contains(self[i], this)) { + return true; + } + } + })); + } + + matched = []; + for (i = 0; i < l; i++) { + jQuery.find(selector, this[i], matched); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + matched = this.pushStack(l > 1 ? jQuery.unique(matched) : matched); + matched.selector = (this.selector ? this.selector + " " : "") + selector; + return matched; + }; + jQuery.prototype.finish = function (type) { + /// + /// Stop the currently-running animation, remove all queued animations, and complete all animations for the matched elements. + /// + /// + /// The name of the queue in which to stop animations. + /// + /// + + if (type !== false) { + type = type || "fx"; + } + return this.each(function () { + var index, + data = data_priv.get(this), + queue = data[type + "queue"], + hooks = data[type + "queueHooks"], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // enable finishing flag on private data + data.finish = true; + + // empty the queue first + jQuery.queue(this, type, []); + + if (hooks && hooks.cur && hooks.cur.finish) { + hooks.cur.finish.call(this); + } + + // look for any active animations, and finish them + for (index = timers.length; index--;) { + if (timers[index].elem === this && timers[index].queue === type) { + timers[index].anim.stop(true); + timers.splice(index, 1); + } + } + + // look for any animations in the old queue and finish them + for (index = 0; index < length; index++) { + if (queue[index] && queue[index].finish) { + queue[index].finish.call(this); + } + } + + // turn off finishing flag + delete data.finish; + }); + }; + jQuery.prototype.first = function () { + /// + /// Reduce the set of matched elements to the first in the set. + /// + /// + + return this.eq(0); + }; + jQuery.prototype.focus = function (data, fn) { + /// + /// Bind an event handler to the "focus" JavaScript event, or trigger that event on an element. + /// 1 - focus(handler(eventObject)) + /// 2 - focus(eventData, handler(eventObject)) + /// 3 - focus() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.focusin = function (data, fn) { + /// + /// Bind an event handler to the "focusin" event. + /// 1 - focusin(handler(eventObject)) + /// 2 - focusin(eventData, handler(eventObject)) + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.focusout = function (data, fn) { + /// + /// Bind an event handler to the "focusout" JavaScript event. + /// 1 - focusout(handler(eventObject)) + /// 2 - focusout(eventData, handler(eventObject)) + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.get = function (num) { + /// + /// Retrieve the DOM elements matched by the jQuery object. + /// + /// + /// A zero-based integer indicating which element to retrieve. + /// + /// + + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + (num < 0 ? this[this.length + num] : this[num]); + }; + jQuery.prototype.has = function (target) { + /// + /// Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element. + /// 1 - has(selector) + /// 2 - has(contained) + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var targets = jQuery(target, this), + l = targets.length; + + return this.filter(function () { + var i = 0; + for (; i < l; i++) { + if (jQuery.contains(this, targets[i])) { + return true; + } + } + }); + }; + jQuery.prototype.hasClass = function (selector) { + /// + /// Determine whether any of the matched elements are assigned the given class. + /// + /// + /// The class name to search for. + /// + /// + + var className = " " + selector + " ", + i = 0, + l = this.length; + for (; i < l; i++) { + if (this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf(className) >= 0) { + return true; + } + } + + return false; + }; + jQuery.prototype.height = function (margin, value) { + /// + /// 1: Get the current computed height for the first element in the set of matched elements. + /// 1.1 - height() + /// 2: Set the CSS height of every matched element. + /// 2.1 - height(value) + /// 2.2 - height(function(index, height)) + /// + /// + /// An integer representing the number of pixels, or an integer with an optional unit of measure appended (as a string). + /// + /// + + var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), + extra = defaultExtra || (margin === true || value === true ? "margin" : "border"); + + return jQuery.access(this, function (elem, type, value) { + var doc; + + if (jQuery.isWindow(elem)) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement["client" + name]; + } + + // Get document width or height + if (elem.nodeType === 9) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], + // whichever is greatest + return Math.max( + elem.body["scroll" + name], doc["scroll" + name], + elem.body["offset" + name], doc["offset" + name], + doc["client" + name] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css(elem, type, extra) : + + // Set width or height on the element + jQuery.style(elem, type, value, extra); + }, type, chainable ? margin : undefined, chainable, null); + }; + jQuery.prototype.hide = function (speed, easing, callback) { + /// + /// Hide the matched elements. + /// 1 - hide() + /// 2 - hide(duration, complete) + /// 3 - hide(options) + /// 4 - hide(duration, easing, complete) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return speed == null || typeof speed === "boolean" ? + cssFn.apply(this, arguments) : + this.animate(genFx(name, true), speed, easing, callback); + }; + jQuery.prototype.hover = function (fnOver, fnOut) { + /// + /// 1: Bind two handlers to the matched elements, to be executed when the mouse pointer enters and leaves the elements. + /// 1.1 - hover(handlerIn(eventObject), handlerOut(eventObject)) + /// 2: Bind a single handler to the matched elements, to be executed when the mouse pointer enters or leaves the elements. + /// 2.1 - hover(handlerInOut(eventObject)) + /// + /// + /// A function to execute when the mouse pointer enters the element. + /// + /// + /// A function to execute when the mouse pointer leaves the element. + /// + /// + + return this.mouseenter(fnOver).mouseleave(fnOut || fnOver); + }; + jQuery.prototype.html = function (value) { + /// + /// 1: Get the HTML contents of the first element in the set of matched elements. + /// 1.1 - html() + /// 2: Set the HTML contents of each element in the set of matched elements. + /// 2.1 - html(htmlString) + /// 2.2 - html(function(index, oldhtml)) + /// + /// + /// A string of HTML to set as the content of each matched element. + /// + /// + + return jQuery.access(this, function (value) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if (value === undefined && elem.nodeType === 1) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if (typeof value === "string" && !rnoInnerhtml.test(value) && + !wrapMap[(rtagName.exec(value) || ["", ""])[1].toLowerCase()]) { + + value = value.replace(rxhtmlTag, "<$1>"); + + try { + for (; i < l; i++) { + elem = this[i] || {}; + + // Remove element nodes and prevent memory leaks + if (elem.nodeType === 1) { + jQuery.cleanData(getAll(elem, false)); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch (e) { } + } + + if (elem) { + this.empty().append(value); + } + }, null, value, arguments.length); + }; + jQuery.prototype.index = function (elem) { + /// + /// Search for a given element from among the matched elements. + /// 1 - index() + /// 2 - index(selector) + /// 3 - index(element) + /// + /// + /// A selector representing a jQuery collection in which to look for an element. + /// + /// + + + // No argument, return index in parent + if (!elem) { + return (this[0] && this[0].parentNode) ? this.first().prevAll().length : -1; + } + + // index in selector + if (typeof elem === "string") { + return core_indexOf.call(jQuery(elem), this[0]); + } + + // Locate the position of the desired element + return core_indexOf.call(this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem + ); + }; + jQuery.prototype.init = function (selector, context, rootjQuery) { + + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if (!selector) { + return this; + } + + // Handle HTML strings + if (typeof selector === "string") { + if (selector.charAt(0) === "<" && selector.charAt(selector.length - 1) === ">" && selector.length >= 3) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [null, selector, null]; + + } else { + match = rquickExpr.exec(selector); + } + + // Match html or make sure no context is specified for #id + if (match && (match[1] || !context)) { + + // HANDLE: $(html) -> $(array) + if (match[1]) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + jQuery.merge(this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + )); + + // HANDLE: $(html, props) + if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) { + for (match in context) { + // Properties of context are called as methods if possible + if (jQuery.isFunction(this[match])) { + this[match](context[match]); + + // ...and otherwise set as attributes + } else { + this.attr(match, context[match]); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById(match[2]); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if (elem && elem.parentNode) { + // Inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if (!context || context.jquery) { + return (context || rootjQuery).find(selector); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor(context).find(selector); + } + + // HANDLE: $(DOMElement) + } else if (selector.nodeType) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if (jQuery.isFunction(selector)) { + return rootjQuery.ready(selector); + } + + if (selector.selector !== undefined) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray(selector, this); + }; + jQuery.prototype.innerHeight = function (margin, value) { + /// + /// Get the current computed height for the first element in the set of matched elements, including padding but not border. + /// + /// + + var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), + extra = defaultExtra || (margin === true || value === true ? "margin" : "border"); + + return jQuery.access(this, function (elem, type, value) { + var doc; + + if (jQuery.isWindow(elem)) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement["client" + name]; + } + + // Get document width or height + if (elem.nodeType === 9) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], + // whichever is greatest + return Math.max( + elem.body["scroll" + name], doc["scroll" + name], + elem.body["offset" + name], doc["offset" + name], + doc["client" + name] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css(elem, type, extra) : + + // Set width or height on the element + jQuery.style(elem, type, value, extra); + }, type, chainable ? margin : undefined, chainable, null); + }; + jQuery.prototype.innerWidth = function (margin, value) { + /// + /// Get the current computed width for the first element in the set of matched elements, including padding but not border. + /// + /// + + var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), + extra = defaultExtra || (margin === true || value === true ? "margin" : "border"); + + return jQuery.access(this, function (elem, type, value) { + var doc; + + if (jQuery.isWindow(elem)) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement["client" + name]; + } + + // Get document width or height + if (elem.nodeType === 9) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], + // whichever is greatest + return Math.max( + elem.body["scroll" + name], doc["scroll" + name], + elem.body["offset" + name], doc["offset" + name], + doc["client" + name] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css(elem, type, extra) : + + // Set width or height on the element + jQuery.style(elem, type, value, extra); + }, type, chainable ? margin : undefined, chainable, null); + }; + jQuery.prototype.insertAfter = function (selector) { + /// + /// Insert every element in the set of matched elements after the target. + /// + /// + /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted after the element(s) specified by this parameter. + /// + /// + + var elems, + ret = [], + insert = jQuery(selector), + last = insert.length - 1, + i = 0; + + for (; i <= last; i++) { + elems = i === last ? this : this.clone(true); + jQuery(insert[i])[original](elems); + + // Support: QtWebKit + // .get() because core_push.apply(_, arraylike) throws + core_push.apply(ret, elems.get()); + } + + return this.pushStack(ret); + }; + jQuery.prototype.insertBefore = function (selector) { + /// + /// Insert every element in the set of matched elements before the target. + /// + /// + /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted before the element(s) specified by this parameter. + /// + /// + + var elems, + ret = [], + insert = jQuery(selector), + last = insert.length - 1, + i = 0; + + for (; i <= last; i++) { + elems = i === last ? this : this.clone(true); + jQuery(insert[i])[original](elems); + + // Support: QtWebKit + // .get() because core_push.apply(_, arraylike) throws + core_push.apply(ret, elems.get()); + } + + return this.pushStack(ret); + }; + jQuery.prototype.is = function (selector) { + /// + /// Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. + /// 1 - is(selector) + /// 2 - is(function(index)) + /// 3 - is(jQuery object) + /// 4 - is(element) + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + return !!selector && ( + typeof selector === "string" ? + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + rneedsContext.test(selector) ? + jQuery(selector, this.context).index(this[0]) >= 0 : + jQuery.filter(selector, this).length > 0 : + this.filter(selector).length > 0); + }; + jQuery.prototype.keydown = function (data, fn) { + /// + /// Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element. + /// 1 - keydown(handler(eventObject)) + /// 2 - keydown(eventData, handler(eventObject)) + /// 3 - keydown() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.keypress = function (data, fn) { + /// + /// Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element. + /// 1 - keypress(handler(eventObject)) + /// 2 - keypress(eventData, handler(eventObject)) + /// 3 - keypress() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.keyup = function (data, fn) { + /// + /// Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element. + /// 1 - keyup(handler(eventObject)) + /// 2 - keyup(eventData, handler(eventObject)) + /// 3 - keyup() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.last = function () { + /// + /// Reduce the set of matched elements to the final one in the set. + /// + /// + + return this.eq(-1); + }; + jQuery.prototype.length = 0; + jQuery.prototype.load = function (url, params, callback) { + /// + /// 1: Bind an event handler to the "load" JavaScript event. + /// 1.1 - load(handler(eventObject)) + /// 1.2 - load(eventData, handler(eventObject)) + /// 2: Load data from the server and place the returned HTML into the matched element. + /// 2.1 - load(url, data, complete(responseText, textStatus, XMLHttpRequest)) + /// + /// + /// A string containing the URL to which the request is sent. + /// + /// + /// A plain object or string that is sent to the server with the request. + /// + /// + /// A callback function that is executed when the request completes. + /// + /// + + if (typeof url !== "string" && _load) { + return _load.apply(this, arguments); + } + + var selector, type, response, + self = this, + off = url.indexOf(" "); + + if (off >= 0) { + selector = url.slice(off); + url = url.slice(0, off); + } + + // If it's a function + if (jQuery.isFunction(params)) { + + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if (params && typeof params === "object") { + type = "POST"; + } + + // If we have elements to modify, make the request + if (self.length > 0) { + jQuery.ajax({ + url: url, + + // if "type" variable is undefined, then "GET" method will be used + type: type, + dataType: "html", + data: params + }).done(function (responseText) { + + // Save response for use in complete callback + response = arguments; + + self.html(selector ? + + // If a selector was specified, locate the right elements in a dummy div + // Exclude scripts to avoid IE 'Permission Denied' errors + jQuery("
    ").append(jQuery.parseHTML(responseText)).find(selector) : + + // Otherwise use the full result + responseText); + + }).complete(callback && function (jqXHR, status) { + self.each(callback, response || [jqXHR.responseText, status, jqXHR]); + }); + } + + return this; + }; + jQuery.prototype.map = function (callback) { + /// + /// Pass each element in the current matched set through a function, producing a new jQuery object containing the return values. + /// + /// + /// A function object that will be invoked for each element in the current set. + /// + /// + + return this.pushStack(jQuery.map(this, function (elem, i) { + return callback.call(elem, i, elem); + })); + }; + jQuery.prototype.mousedown = function (data, fn) { + /// + /// Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element. + /// 1 - mousedown(handler(eventObject)) + /// 2 - mousedown(eventData, handler(eventObject)) + /// 3 - mousedown() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.mouseenter = function (data, fn) { + /// + /// Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element. + /// 1 - mouseenter(handler(eventObject)) + /// 2 - mouseenter(eventData, handler(eventObject)) + /// 3 - mouseenter() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.mouseleave = function (data, fn) { + /// + /// Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element. + /// 1 - mouseleave(handler(eventObject)) + /// 2 - mouseleave(eventData, handler(eventObject)) + /// 3 - mouseleave() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.mousemove = function (data, fn) { + /// + /// Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element. + /// 1 - mousemove(handler(eventObject)) + /// 2 - mousemove(eventData, handler(eventObject)) + /// 3 - mousemove() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.mouseout = function (data, fn) { + /// + /// Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element. + /// 1 - mouseout(handler(eventObject)) + /// 2 - mouseout(eventData, handler(eventObject)) + /// 3 - mouseout() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.mouseover = function (data, fn) { + /// + /// Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element. + /// 1 - mouseover(handler(eventObject)) + /// 2 - mouseover(eventData, handler(eventObject)) + /// 3 - mouseover() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.mouseup = function (data, fn) { + /// + /// Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element. + /// 1 - mouseup(handler(eventObject)) + /// 2 - mouseup(eventData, handler(eventObject)) + /// 3 - mouseup() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.next = function (until, selector) { + /// + /// Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var matched = jQuery.map(this, fn, until); + + if (name.slice(-5) !== "Until") { + selector = until; + } + + if (selector && typeof selector === "string") { + matched = jQuery.filter(selector, matched); + } + + if (this.length > 1) { + // Remove duplicates + if (!guaranteedUnique[name]) { + jQuery.unique(matched); + } + + // Reverse order for parents* and prev* + if (name[0] === "p") { + matched.reverse(); + } + } + + return this.pushStack(matched); + }; + jQuery.prototype.nextAll = function (until, selector) { + /// + /// Get all following siblings of each element in the set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var matched = jQuery.map(this, fn, until); + + if (name.slice(-5) !== "Until") { + selector = until; + } + + if (selector && typeof selector === "string") { + matched = jQuery.filter(selector, matched); + } + + if (this.length > 1) { + // Remove duplicates + if (!guaranteedUnique[name]) { + jQuery.unique(matched); + } + + // Reverse order for parents* and prev* + if (name[0] === "p") { + matched.reverse(); + } + } + + return this.pushStack(matched); + }; + jQuery.prototype.nextUntil = function (until, selector) { + /// + /// Get all following siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object passed. + /// 1 - nextUntil(selector, filter) + /// 2 - nextUntil(element, filter) + /// + /// + /// A string containing a selector expression to indicate where to stop matching following sibling elements. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var matched = jQuery.map(this, fn, until); + + if (name.slice(-5) !== "Until") { + selector = until; + } + + if (selector && typeof selector === "string") { + matched = jQuery.filter(selector, matched); + } + + if (this.length > 1) { + // Remove duplicates + if (!guaranteedUnique[name]) { + jQuery.unique(matched); + } + + // Reverse order for parents* and prev* + if (name[0] === "p") { + matched.reverse(); + } + } + + return this.pushStack(matched); + }; + jQuery.prototype.not = function (selector) { + /// + /// Remove elements from the set of matched elements. + /// 1 - not(selector) + /// 2 - not(elements) + /// 3 - not(function(index)) + /// 4 - not(jQuery object) + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + return this.pushStack(winnow(this, selector || [], true)); + }; + jQuery.prototype.off = function (types, selector, fn) { + /// + /// Remove an event handler. + /// 1 - off(events, selector, handler(eventObject)) + /// 2 - off(events, selector) + /// + /// + /// One or more space-separated event types and optional namespaces, or just namespaces, such as "click", "keydown.myPlugin", or ".myPlugin". + /// + /// + /// A selector which should match the one originally passed to .on() when attaching event handlers. + /// + /// + /// A handler function previously attached for the event(s), or the special value false. + /// + /// + + var handleObj, type; + if (types && types.preventDefault && types.handleObj) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery(types.delegateTarget).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if (typeof types === "object") { + // ( types-object [, selector] ) + for (type in types) { + this.off(type, selector, types[type]); + } + return this; + } + if (selector === false || typeof selector === "function") { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if (fn === false) { + fn = returnFalse; + } + return this.each(function () { + jQuery.event.remove(this, types, fn, selector); + }); + }; + jQuery.prototype.offset = function (options) { + /// + /// 1: Get the current coordinates of the first element in the set of matched elements, relative to the document. + /// 1.1 - offset() + /// 2: Set the current coordinates of every element in the set of matched elements, relative to the document. + /// 2.1 - offset(coordinates) + /// 2.2 - offset(function(index, coords)) + /// + /// + /// An object containing the properties top and left, which are integers indicating the new top and left coordinates for the elements. + /// + /// + + if (arguments.length) { + return options === undefined ? + this : + this.each(function (i) { + jQuery.offset.setOffset(this, options, i); + }); + } + + var docElem, win, + elem = this[0], + box = { top: 0, left: 0 }, + doc = elem && elem.ownerDocument; + + if (!doc) { + return; + } + + docElem = doc.documentElement; + + // Make sure it's not a disconnected DOM node + if (!jQuery.contains(docElem, elem)) { + return box; + } + + // If we don't have gBCR, just use 0,0 rather than error + // BlackBerry 5, iOS 3 (original iPhone) + if (typeof elem.getBoundingClientRect !== core_strundefined) { + box = elem.getBoundingClientRect(); + } + win = getWindow(doc); + return { + top: box.top + win.pageYOffset - docElem.clientTop, + left: box.left + win.pageXOffset - docElem.clientLeft + }; + }; + jQuery.prototype.offsetParent = function () { + /// + /// Get the closest ancestor element that is positioned. + /// + /// + + return this.map(function () { + var offsetParent = this.offsetParent || docElem; + + while (offsetParent && (!jQuery.nodeName(offsetParent, "html") && jQuery.css(offsetParent, "position") === "static")) { + offsetParent = offsetParent.offsetParent; + } + + return offsetParent || docElem; + }); + }; + jQuery.prototype.on = function (types, selector, data, fn, /*INTERNAL*/ one) { + /// + /// Attach an event handler function for one or more events to the selected elements. + /// 1 - on(events, selector, data, handler(eventObject)) + /// 2 - on(events, selector, data) + /// + /// + /// One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + /// + /// + /// A selector string to filter the descendants of the selected elements that trigger the event. If the selector is null or omitted, the event is always triggered when it reaches the selected element. + /// + /// + /// Data to be passed to the handler in event.data when an event is triggered. + /// + /// + /// A function to execute when the event is triggered. The value false is also allowed as a shorthand for a function that simply does return false. + /// + /// + + var origFn, type; + + // Types can be a map of types/handlers + if (typeof types === "object") { + // ( types-Object, selector, data ) + if (typeof selector !== "string") { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for (type in types) { + this.on(type, selector, data, types[type], one); + } + return this; + } + + if (data == null && fn == null) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if (fn == null) { + if (typeof selector === "string") { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if (fn === false) { + fn = returnFalse; + } else if (!fn) { + return this; + } + + if (one === 1) { + origFn = fn; + fn = function (event) { + // Can use an empty set, since event contains the info + jQuery().off(event); + return origFn.apply(this, arguments); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || (origFn.guid = jQuery.guid++); + } + return this.each(function () { + jQuery.event.add(this, types, fn, data, selector); + }); + }; + jQuery.prototype.one = function (types, selector, data, fn) { + /// + /// Attach a handler to an event for the elements. The handler is executed at most once per element. + /// 1 - one(events, data, handler(eventObject)) + /// 2 - one(events, selector, data, handler(eventObject)) + /// 3 - one(events, selector, data) + /// + /// + /// One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + /// + /// + /// A selector string to filter the descendants of the selected elements that trigger the event. If the selector is null or omitted, the event is always triggered when it reaches the selected element. + /// + /// + /// Data to be passed to the handler in event.data when an event is triggered. + /// + /// + /// A function to execute when the event is triggered. The value false is also allowed as a shorthand for a function that simply does return false. + /// + /// + + return this.on(types, selector, data, fn, 1); + }; + jQuery.prototype.outerHeight = function (margin, value) { + /// + /// Get the current computed height for the first element in the set of matched elements, including padding, border, and optionally margin. Returns an integer (without "px") representation of the value or null if called on an empty set of elements. + /// + /// + /// A Boolean indicating whether to include the element's margin in the calculation. + /// + /// + + var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), + extra = defaultExtra || (margin === true || value === true ? "margin" : "border"); + + return jQuery.access(this, function (elem, type, value) { + var doc; + + if (jQuery.isWindow(elem)) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement["client" + name]; + } + + // Get document width or height + if (elem.nodeType === 9) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], + // whichever is greatest + return Math.max( + elem.body["scroll" + name], doc["scroll" + name], + elem.body["offset" + name], doc["offset" + name], + doc["client" + name] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css(elem, type, extra) : + + // Set width or height on the element + jQuery.style(elem, type, value, extra); + }, type, chainable ? margin : undefined, chainable, null); + }; + jQuery.prototype.outerWidth = function (margin, value) { + /// + /// Get the current computed width for the first element in the set of matched elements, including padding and border. + /// + /// + /// A Boolean indicating whether to include the element's margin in the calculation. + /// + /// + + var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), + extra = defaultExtra || (margin === true || value === true ? "margin" : "border"); + + return jQuery.access(this, function (elem, type, value) { + var doc; + + if (jQuery.isWindow(elem)) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement["client" + name]; + } + + // Get document width or height + if (elem.nodeType === 9) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], + // whichever is greatest + return Math.max( + elem.body["scroll" + name], doc["scroll" + name], + elem.body["offset" + name], doc["offset" + name], + doc["client" + name] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css(elem, type, extra) : + + // Set width or height on the element + jQuery.style(elem, type, value, extra); + }, type, chainable ? margin : undefined, chainable, null); + }; + jQuery.prototype.parent = function (until, selector) { + /// + /// Get the parent of each element in the current set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var matched = jQuery.map(this, fn, until); + + if (name.slice(-5) !== "Until") { + selector = until; + } + + if (selector && typeof selector === "string") { + matched = jQuery.filter(selector, matched); + } + + if (this.length > 1) { + // Remove duplicates + if (!guaranteedUnique[name]) { + jQuery.unique(matched); + } + + // Reverse order for parents* and prev* + if (name[0] === "p") { + matched.reverse(); + } + } + + return this.pushStack(matched); + }; + jQuery.prototype.parents = function (until, selector) { + /// + /// Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var matched = jQuery.map(this, fn, until); + + if (name.slice(-5) !== "Until") { + selector = until; + } + + if (selector && typeof selector === "string") { + matched = jQuery.filter(selector, matched); + } + + if (this.length > 1) { + // Remove duplicates + if (!guaranteedUnique[name]) { + jQuery.unique(matched); + } + + // Reverse order for parents* and prev* + if (name[0] === "p") { + matched.reverse(); + } + } + + return this.pushStack(matched); + }; + jQuery.prototype.parentsUntil = function (until, selector) { + /// + /// Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector, DOM node, or jQuery object. + /// 1 - parentsUntil(selector, filter) + /// 2 - parentsUntil(element, filter) + /// + /// + /// A string containing a selector expression to indicate where to stop matching ancestor elements. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var matched = jQuery.map(this, fn, until); + + if (name.slice(-5) !== "Until") { + selector = until; + } + + if (selector && typeof selector === "string") { + matched = jQuery.filter(selector, matched); + } + + if (this.length > 1) { + // Remove duplicates + if (!guaranteedUnique[name]) { + jQuery.unique(matched); + } + + // Reverse order for parents* and prev* + if (name[0] === "p") { + matched.reverse(); + } + } + + return this.pushStack(matched); + }; + jQuery.prototype.position = function () { + /// + /// Get the current coordinates of the first element in the set of matched elements, relative to the offset parent. + /// + /// + + if (!this[0]) { + return; + } + + var offsetParent, offset, + elem = this[0], + parentOffset = { top: 0, left: 0 }; + + // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent + if (jQuery.css(elem, "position") === "fixed") { + // We assume that getBoundingClientRect is available when computed position is fixed + offset = elem.getBoundingClientRect(); + + } else { + // Get *real* offsetParent + offsetParent = this.offsetParent(); + + // Get correct offsets + offset = this.offset(); + if (!jQuery.nodeName(offsetParent[0], "html")) { + parentOffset = offsetParent.offset(); + } + + // Add offsetParent borders + parentOffset.top += jQuery.css(offsetParent[0], "borderTopWidth", true); + parentOffset.left += jQuery.css(offsetParent[0], "borderLeftWidth", true); + } + + // Subtract parent offsets and element margins + return { + top: offset.top - parentOffset.top - jQuery.css(elem, "marginTop", true), + left: offset.left - parentOffset.left - jQuery.css(elem, "marginLeft", true) + }; + }; + jQuery.prototype.prepend = function () { + /// + /// Insert content, specified by the parameter, to the beginning of each element in the set of matched elements. + /// 1 - prepend(content, content) + /// 2 - prepend(function(index, html)) + /// + /// + /// DOM element, array of elements, HTML string, or jQuery object to insert at the beginning of each element in the set of matched elements. + /// + /// + /// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the beginning of each element in the set of matched elements. + /// + /// + + return this.domManip(arguments, function (elem) { + if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { + var target = manipulationTarget(this, elem); + target.insertBefore(elem, target.firstChild); + } + }); + }; + jQuery.prototype.prependTo = function (selector) { + /// + /// Insert every element in the set of matched elements to the beginning of the target. + /// + /// + /// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the beginning of the element(s) specified by this parameter. + /// + /// + + var elems, + ret = [], + insert = jQuery(selector), + last = insert.length - 1, + i = 0; + + for (; i <= last; i++) { + elems = i === last ? this : this.clone(true); + jQuery(insert[i])[original](elems); + + // Support: QtWebKit + // .get() because core_push.apply(_, arraylike) throws + core_push.apply(ret, elems.get()); + } + + return this.pushStack(ret); + }; + jQuery.prototype.prev = function (until, selector) { + /// + /// Get the immediately preceding sibling of each element in the set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var matched = jQuery.map(this, fn, until); + + if (name.slice(-5) !== "Until") { + selector = until; + } + + if (selector && typeof selector === "string") { + matched = jQuery.filter(selector, matched); + } + + if (this.length > 1) { + // Remove duplicates + if (!guaranteedUnique[name]) { + jQuery.unique(matched); + } + + // Reverse order for parents* and prev* + if (name[0] === "p") { + matched.reverse(); + } + } + + return this.pushStack(matched); + }; + jQuery.prototype.prevAll = function (until, selector) { + /// + /// Get all preceding siblings of each element in the set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var matched = jQuery.map(this, fn, until); + + if (name.slice(-5) !== "Until") { + selector = until; + } + + if (selector && typeof selector === "string") { + matched = jQuery.filter(selector, matched); + } + + if (this.length > 1) { + // Remove duplicates + if (!guaranteedUnique[name]) { + jQuery.unique(matched); + } + + // Reverse order for parents* and prev* + if (name[0] === "p") { + matched.reverse(); + } + } + + return this.pushStack(matched); + }; + jQuery.prototype.prevUntil = function (until, selector) { + /// + /// Get all preceding siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object. + /// 1 - prevUntil(selector, filter) + /// 2 - prevUntil(element, filter) + /// + /// + /// A string containing a selector expression to indicate where to stop matching preceding sibling elements. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var matched = jQuery.map(this, fn, until); + + if (name.slice(-5) !== "Until") { + selector = until; + } + + if (selector && typeof selector === "string") { + matched = jQuery.filter(selector, matched); + } + + if (this.length > 1) { + // Remove duplicates + if (!guaranteedUnique[name]) { + jQuery.unique(matched); + } + + // Reverse order for parents* and prev* + if (name[0] === "p") { + matched.reverse(); + } + } + + return this.pushStack(matched); + }; + jQuery.prototype.promise = function (type, obj) { + /// + /// Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished. + /// + /// + /// The type of queue that needs to be observed. + /// + /// + /// Object onto which the promise methods have to be attached + /// + /// + + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function () { + if (!(--count)) { + defer.resolveWith(elements, [elements]); + } + }; + + if (typeof type !== "string") { + obj = type; + type = undefined; + } + type = type || "fx"; + + while (i--) { + tmp = data_priv.get(elements[i], type + "queueHooks"); + if (tmp && tmp.empty) { + count++; + tmp.empty.add(resolve); + } + } + resolve(); + return defer.promise(obj); + }; + jQuery.prototype.prop = function (name, value) { + /// + /// 1: Get the value of a property for the first element in the set of matched elements. + /// 1.1 - prop(propertyName) + /// 2: Set one or more properties for the set of matched elements. + /// 2.1 - prop(propertyName, value) + /// 2.2 - prop(properties) + /// 2.3 - prop(propertyName, function(index, oldPropertyValue)) + /// + /// + /// The name of the property to set. + /// + /// + /// A value to set for the property. + /// + /// + + return jQuery.access(this, jQuery.prop, name, value, arguments.length > 1); + }; + jQuery.prototype.pushStack = function (elems) { + /// + /// Add a collection of DOM elements onto the jQuery stack. + /// 1 - pushStack(elements) + /// 2 - pushStack(elements, name, arguments) + /// + /// + /// An array of elements to push onto the stack and make into a new jQuery object. + /// + /// + /// The name of a jQuery method that generated the array of elements. + /// + /// + /// The arguments that were passed in to the jQuery method (for serialization). + /// + /// + + + // Build a new jQuery matched element set + var ret = jQuery.merge(this.constructor(), elems); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }; + jQuery.prototype.queue = function (type, data) { + /// + /// 1: Show the queue of functions to be executed on the matched elements. + /// 1.1 - queue(queueName) + /// 2: Manipulate the queue of functions to be executed, once for each matched element. + /// 2.1 - queue(queueName, newQueue) + /// 2.2 - queue(queueName, callback( next )) + /// + /// + /// A string containing the name of the queue. Defaults to fx, the standard effects queue. + /// + /// + /// An array of functions to replace the current queue contents. + /// + /// + + var setter = 2; + + if (typeof type !== "string") { + data = type; + type = "fx"; + setter--; + } + + if (arguments.length < setter) { + return jQuery.queue(this[0], type); + } + + return data === undefined ? + this : + this.each(function () { + var queue = jQuery.queue(this, type, data); + + // ensure a hooks for this queue + jQuery._queueHooks(this, type); + + if (type === "fx" && queue[0] !== "inprogress") { + jQuery.dequeue(this, type); + } + }); + }; + jQuery.prototype.ready = function (fn) { + /// + /// Specify a function to execute when the DOM is fully loaded. + /// + /// + /// A function to execute after the DOM is ready. + /// + /// + + // Add the callback + jQuery.ready.promise().done(fn); + + return this; + }; + jQuery.prototype.remove = function (selector, keepData) { + /// + /// Remove the set of matched elements from the DOM. + /// + /// + /// A selector expression that filters the set of matched elements to be removed. + /// + /// + + var elem, + elems = selector ? jQuery.filter(selector, this) : this, + i = 0; + + for (; (elem = elems[i]) != null; i++) { + if (!keepData && elem.nodeType === 1) { + jQuery.cleanData(getAll(elem)); + } + + if (elem.parentNode) { + if (keepData && jQuery.contains(elem.ownerDocument, elem)) { + setGlobalEval(getAll(elem, "script")); + } + elem.parentNode.removeChild(elem); + } + } + + return this; + }; + jQuery.prototype.removeAttr = function (name) { + /// + /// Remove an attribute from each element in the set of matched elements. + /// + /// + /// An attribute to remove; as of version 1.7, it can be a space-separated list of attributes. + /// + /// + + return this.each(function () { + jQuery.removeAttr(this, name); + }); + }; + jQuery.prototype.removeClass = function (value) { + /// + /// Remove a single class, multiple classes, or all classes from each element in the set of matched elements. + /// 1 - removeClass(className) + /// 2 - removeClass(function(index, class)) + /// + /// + /// One or more space-separated classes to be removed from the class attribute of each matched element. + /// + /// + + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; + + if (jQuery.isFunction(value)) { + return this.each(function (j) { + jQuery(this).removeClass(value.call(this, j, this.className)); + }); + } + if (proceed) { + classes = (value || "").match(core_rnotwhite) || []; + + for (; i < len; i++) { + elem = this[i]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && (elem.className ? + (" " + elem.className + " ").replace(rclass, " ") : + "" + ); + + if (cur) { + j = 0; + while ((clazz = classes[j++])) { + // Remove *all* instances + while (cur.indexOf(" " + clazz + " ") >= 0) { + cur = cur.replace(" " + clazz + " ", " "); + } + } + elem.className = value ? jQuery.trim(cur) : ""; + } + } + } + + return this; + }; + jQuery.prototype.removeData = function (key) { + /// + /// Remove a previously-stored piece of data. + /// 1 - removeData(name) + /// 2 - removeData(list) + /// + /// + /// A string naming the piece of data to delete. + /// + /// + + return this.each(function () { + data_user.remove(this, key); + }); + }; + jQuery.prototype.removeProp = function (name) { + /// + /// Remove a property for the set of matched elements. + /// + /// + /// The name of the property to remove. + /// + /// + + return this.each(function () { + delete this[jQuery.propFix[name] || name]; + }); + }; + jQuery.prototype.replaceAll = function (selector) { + /// + /// Replace each target element with the set of matched elements. + /// + /// + /// A selector string, jQuery object, or DOM element reference indicating which element(s) to replace. + /// + /// + + var elems, + ret = [], + insert = jQuery(selector), + last = insert.length - 1, + i = 0; + + for (; i <= last; i++) { + elems = i === last ? this : this.clone(true); + jQuery(insert[i])[original](elems); + + // Support: QtWebKit + // .get() because core_push.apply(_, arraylike) throws + core_push.apply(ret, elems.get()); + } + + return this.pushStack(ret); + }; + jQuery.prototype.replaceWith = function () { + /// + /// Replace each element in the set of matched elements with the provided new content and return the set of elements that was removed. + /// 1 - replaceWith(newContent) + /// 2 - replaceWith(function) + /// + /// + /// The content to insert. May be an HTML string, DOM element, or jQuery object. + /// + /// + + var + // Snapshot the DOM in case .domManip sweeps something relevant into its fragment + args = jQuery.map(this, function (elem) { + return [elem.nextSibling, elem.parentNode]; + }), + i = 0; + + // Make the changes, replacing each context element with the new content + this.domManip(arguments, function (elem) { + var next = args[i++], + parent = args[i++]; + + if (parent) { + jQuery(this).remove(); + parent.insertBefore(elem, next); + } + // Allow new content to include elements from the context set + }, true); + + // Force removal if there was no new content (e.g., from empty arguments) + return i ? this : this.remove(); + }; + jQuery.prototype.resize = function (data, fn) { + /// + /// Bind an event handler to the "resize" JavaScript event, or trigger that event on an element. + /// 1 - resize(handler(eventObject)) + /// 2 - resize(eventData, handler(eventObject)) + /// 3 - resize() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.scroll = function (data, fn) { + /// + /// Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element. + /// 1 - scroll(handler(eventObject)) + /// 2 - scroll(eventData, handler(eventObject)) + /// 3 - scroll() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.scrollLeft = function (val) { + /// + /// 1: Get the current horizontal position of the scroll bar for the first element in the set of matched elements. + /// 1.1 - scrollLeft() + /// 2: Set the current horizontal position of the scroll bar for each of the set of matched elements. + /// 2.1 - scrollLeft(value) + /// + /// + /// An integer indicating the new position to set the scroll bar to. + /// + /// + + return jQuery.access(this, function (elem, method, val) { + var win = getWindow(elem); + + if (val === undefined) { + return win ? win[prop] : elem[method]; + } + + if (win) { + win.scrollTo( + !top ? val : window.pageXOffset, + top ? val : window.pageYOffset + ); + + } else { + elem[method] = val; + } + }, method, val, arguments.length, null); + }; + jQuery.prototype.scrollTop = function (val) { + /// + /// 1: Get the current vertical position of the scroll bar for the first element in the set of matched elements or set the vertical position of the scroll bar for every matched element. + /// 1.1 - scrollTop() + /// 2: Set the current vertical position of the scroll bar for each of the set of matched elements. + /// 2.1 - scrollTop(value) + /// + /// + /// An integer indicating the new position to set the scroll bar to. + /// + /// + + return jQuery.access(this, function (elem, method, val) { + var win = getWindow(elem); + + if (val === undefined) { + return win ? win[prop] : elem[method]; + } + + if (win) { + win.scrollTo( + !top ? val : window.pageXOffset, + top ? val : window.pageYOffset + ); + + } else { + elem[method] = val; + } + }, method, val, arguments.length, null); + }; + jQuery.prototype.select = function (data, fn) { + /// + /// Bind an event handler to the "select" JavaScript event, or trigger that event on an element. + /// 1 - select(handler(eventObject)) + /// 2 - select(eventData, handler(eventObject)) + /// 3 - select() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.serialize = function () { + /// + /// Encode a set of form elements as a string for submission. + /// + /// + + return jQuery.param(this.serializeArray()); + }; + jQuery.prototype.serializeArray = function () { + /// + /// Encode a set of form elements as an array of names and values. + /// + /// + + return this.map(function () { + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop(this, "elements"); + return elements ? jQuery.makeArray(elements) : this; + }) + .filter(function () { + var type = this.type; + // Use .is(":disabled") so that fieldset[disabled] works + return this.name && !jQuery(this).is(":disabled") && + rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && + (this.checked || !manipulation_rcheckableType.test(type)); + }) + .map(function (i, elem) { + var val = jQuery(this).val(); + + return val == null ? + null : + jQuery.isArray(val) ? + jQuery.map(val, function (val) { + return { name: elem.name, value: val.replace(rCRLF, "\r\n") }; + }) : + { name: elem.name, value: val.replace(rCRLF, "\r\n") }; + }).get(); + }; + jQuery.prototype.show = function (speed, easing, callback) { + /// + /// Display the matched elements. + /// 1 - show() + /// 2 - show(duration, complete) + /// 3 - show(options) + /// 4 - show(duration, easing, complete) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return speed == null || typeof speed === "boolean" ? + cssFn.apply(this, arguments) : + this.animate(genFx(name, true), speed, easing, callback); + }; + jQuery.prototype.siblings = function (until, selector) { + /// + /// Get the siblings of each element in the set of matched elements, optionally filtered by a selector. + /// + /// + /// A string containing a selector expression to match elements against. + /// + /// + + var matched = jQuery.map(this, fn, until); + + if (name.slice(-5) !== "Until") { + selector = until; + } + + if (selector && typeof selector === "string") { + matched = jQuery.filter(selector, matched); + } + + if (this.length > 1) { + // Remove duplicates + if (!guaranteedUnique[name]) { + jQuery.unique(matched); + } + + // Reverse order for parents* and prev* + if (name[0] === "p") { + matched.reverse(); + } + } + + return this.pushStack(matched); + }; + jQuery.prototype.size = function () { + /// + /// Return the number of elements in the jQuery object. + /// + /// + + return this.length; + }; + jQuery.prototype.slice = function () { + /// + /// Reduce the set of matched elements to a subset specified by a range of indices. + /// + /// + /// An integer indicating the 0-based position at which the elements begin to be selected. If negative, it indicates an offset from the end of the set. + /// + /// + /// An integer indicating the 0-based position at which the elements stop being selected. If negative, it indicates an offset from the end of the set. If omitted, the range continues until the end of the set. + /// + /// + + return this.pushStack(core_slice.apply(this, arguments)); + }; + jQuery.prototype.slideDown = function (speed, easing, callback) { + /// + /// Display the matched elements with a sliding motion. + /// 1 - slideDown(duration, complete) + /// 2 - slideDown(options) + /// 3 - slideDown(duration, easing, complete) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return this.animate(props, speed, easing, callback); + }; + jQuery.prototype.slideToggle = function (speed, easing, callback) { + /// + /// Display or hide the matched elements with a sliding motion. + /// 1 - slideToggle(duration, complete) + /// 2 - slideToggle(options) + /// 3 - slideToggle(duration, easing, complete) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return this.animate(props, speed, easing, callback); + }; + jQuery.prototype.slideUp = function (speed, easing, callback) { + /// + /// Hide the matched elements with a sliding motion. + /// 1 - slideUp(duration, complete) + /// 2 - slideUp(options) + /// 3 - slideUp(duration, easing, complete) + /// + /// + /// A string or number determining how long the animation will run. + /// + /// + /// A string indicating which easing function to use for the transition. + /// + /// + /// A function to call once the animation is complete. + /// + /// + + return this.animate(props, speed, easing, callback); + }; + jQuery.prototype.stop = function (type, clearQueue, gotoEnd) { + /// + /// Stop the currently-running animation on the matched elements. + /// 1 - stop(clearQueue, jumpToEnd) + /// 2 - stop(queue, clearQueue, jumpToEnd) + /// + /// + /// The name of the queue in which to stop animations. + /// + /// + /// A Boolean indicating whether to remove queued animation as well. Defaults to false. + /// + /// + /// A Boolean indicating whether to complete the current animation immediately. Defaults to false. + /// + /// + + var stopQueue = function (hooks) { + var stop = hooks.stop; + delete hooks.stop; + stop(gotoEnd); + }; + + if (typeof type !== "string") { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if (clearQueue && type !== false) { + this.queue(type || "fx", []); + } + + return this.each(function () { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = data_priv.get(this); + + if (index) { + if (data[index] && data[index].stop) { + stopQueue(data[index]); + } + } else { + for (index in data) { + if (data[index] && data[index].stop && rrun.test(index)) { + stopQueue(data[index]); + } + } + } + + for (index = timers.length; index--;) { + if (timers[index].elem === this && (type == null || timers[index].queue === type)) { + timers[index].anim.stop(gotoEnd); + dequeue = false; + timers.splice(index, 1); + } + } + + // start the next in the queue if the last step wasn't forced + // timers currently will call their complete callbacks, which will dequeue + // but only if they were gotoEnd + if (dequeue || !gotoEnd) { + jQuery.dequeue(this, type); + } + }); + }; + jQuery.prototype.submit = function (data, fn) { + /// + /// Bind an event handler to the "submit" JavaScript event, or trigger that event on an element. + /// 1 - submit(handler(eventObject)) + /// 2 - submit(eventData, handler(eventObject)) + /// 3 - submit() + /// + /// + /// An object containing data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.text = function (value) { + /// + /// 1: Get the combined text contents of each element in the set of matched elements, including their descendants. + /// 1.1 - text() + /// 2: Set the content of each element in the set of matched elements to the specified text. + /// 2.1 - text(textString) + /// 2.2 - text(function(index, text)) + /// + /// + /// A string of text to set as the content of each matched element. + /// + /// + + return jQuery.access(this, function (value) { + return value === undefined ? + jQuery.text(this) : + this.empty().append((this[0] && this[0].ownerDocument || document).createTextNode(value)); + }, null, value, arguments.length); + }; + jQuery.prototype.toArray = function () { + /// + /// Retrieve all the DOM elements contained in the jQuery set, as an array. + /// + /// + + return core_slice.call(this); + }; + jQuery.prototype.toggle = function (speed, easing, callback) { + /// + /// 1: Bind two or more handlers to the matched elements, to be executed on alternate clicks. + /// 1.1 - toggle(handler(eventObject), handler(eventObject), handler(eventObject)) + /// 2: Display or hide the matched elements. + /// 2.1 - toggle(duration, complete) + /// 2.2 - toggle(options) + /// 2.3 - toggle(duration, easing, complete) + /// 2.4 - toggle(showOrHide) + /// + /// + /// A function to execute every even time the element is clicked. + /// + /// + /// A function to execute every odd time the element is clicked. + /// + /// + /// Additional handlers to cycle through after clicks. + /// + /// + + return speed == null || typeof speed === "boolean" ? + cssFn.apply(this, arguments) : + this.animate(genFx(name, true), speed, easing, callback); + }; + jQuery.prototype.toggleClass = function (value, stateVal) { + /// + /// Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument. + /// 1 - toggleClass(className) + /// 2 - toggleClass(className, switch) + /// 3 - toggleClass(switch) + /// 4 - toggleClass(function(index, class, switch), switch) + /// + /// + /// One or more class names (separated by spaces) to be toggled for each element in the matched set. + /// + /// + /// A Boolean (not just truthy/falsy) value to determine whether the class should be added or removed. + /// + /// + + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if (jQuery.isFunction(value)) { + return this.each(function (i) { + jQuery(this).toggleClass(value.call(this, i, this.className, stateVal), stateVal); + }); + } + + return this.each(function () { + if (type === "string") { + // toggle individual class names + var className, + i = 0, + self = jQuery(this), + state = stateVal, + classNames = value.match(core_rnotwhite) || []; + + while ((className = classNames[i++])) { + // check each className given, space separated list + state = isBool ? state : !self.hasClass(className); + self[state ? "addClass" : "removeClass"](className); + } + + // Toggle whole class name + } else if (type === core_strundefined || type === "boolean") { + if (this.className) { + // store className if set + data_priv.set(this, "__className__", this.className); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : data_priv.get(this, "__className__") || ""; + } + }); + }; + jQuery.prototype.trigger = function (type, data) { + /// + /// Execute all handlers and behaviors attached to the matched elements for the given event type. + /// 1 - trigger(eventType, extraParameters) + /// 2 - trigger(event, extraParameters) + /// + /// + /// A string containing a JavaScript event type, such as click or submit. + /// + /// + /// Additional parameters to pass along to the event handler. + /// + /// + + return this.each(function () { + jQuery.event.trigger(type, data, this); + }); + }; + jQuery.prototype.triggerHandler = function (type, data) { + /// + /// Execute all handlers attached to an element for an event. + /// + /// + /// A string containing a JavaScript event type, such as click or submit. + /// + /// + /// An array of additional parameters to pass along to the event handler. + /// + /// + + var elem = this[0]; + if (elem) { + return jQuery.event.trigger(type, data, elem, true); + } + }; + jQuery.prototype.unbind = function (types, fn) { + /// + /// Remove a previously-attached event handler from the elements. + /// 1 - unbind(eventType, handler(eventObject)) + /// 2 - unbind(eventType, false) + /// 3 - unbind(event) + /// + /// + /// A string containing a JavaScript event type, such as click or submit. + /// + /// + /// The function that is to be no longer executed. + /// + /// + + return this.off(types, null, fn); + }; + jQuery.prototype.undelegate = function (selector, types, fn) { + /// + /// Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. + /// 1 - undelegate() + /// 2 - undelegate(selector, eventType) + /// 3 - undelegate(selector, eventType, handler(eventObject)) + /// 4 - undelegate(selector, events) + /// 5 - undelegate(namespace) + /// + /// + /// A selector which will be used to filter the event results. + /// + /// + /// A string containing a JavaScript event type, such as "click" or "keydown" + /// + /// + /// A function to execute at the time the event is triggered. + /// + /// + + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? this.off(selector, "**") : this.off(types, selector || "**", fn); + }; + jQuery.prototype.unload = function (data, fn) { + /// + /// Bind an event handler to the "unload" JavaScript event. + /// 1 - unload(handler(eventObject)) + /// 2 - unload(eventData, handler(eventObject)) + /// + /// + /// A plain object of data that will be passed to the event handler. + /// + /// + /// A function to execute each time the event is triggered. + /// + /// + + return arguments.length > 0 ? + this.on(name, null, data, fn) : + this.trigger(name); + }; + jQuery.prototype.unwrap = function () { + /// + /// Remove the parents of the set of matched elements from the DOM, leaving the matched elements in their place. + /// + /// + + return this.parent().each(function () { + if (!jQuery.nodeName(this, "body")) { + jQuery(this).replaceWith(this.childNodes); + } + }).end(); + }; + jQuery.prototype.val = function (value) { + /// + /// 1: Get the current value of the first element in the set of matched elements. + /// 1.1 - val() + /// 2: Set the value of each element in the set of matched elements. + /// 2.1 - val(value) + /// 2.2 - val(function(index, value)) + /// + /// + /// A string of text or an array of strings corresponding to the value of each matched element to set as selected/checked. + /// + /// + + var hooks, ret, isFunction, + elem = this[0]; + + if (!arguments.length) { + if (elem) { + hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()]; + + if (hooks && "get" in hooks && (ret = hooks.get(elem, "value")) !== undefined) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction(value); + + return this.each(function (i) { + var val, + self = jQuery(this); + + if (this.nodeType !== 1) { + return; + } + + if (isFunction) { + val = value.call(this, i, self.val()); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if (val == null) { + val = ""; + } else if (typeof val === "number") { + val += ""; + } else if (jQuery.isArray(val)) { + val = jQuery.map(val, function (value) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; + + // If set returns undefined, fall back to normal setting + if (!hooks || !("set" in hooks) || hooks.set(this, val, "value") === undefined) { + this.value = val; + } + }); + }; + jQuery.prototype.width = function (margin, value) { + /// + /// 1: Get the current computed width for the first element in the set of matched elements. + /// 1.1 - width() + /// 2: Set the CSS width of each element in the set of matched elements. + /// 2.1 - width(value) + /// 2.2 - width(function(index, width)) + /// + /// + /// An integer representing the number of pixels, or an integer along with an optional unit of measure appended (as a string). + /// + /// + + var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), + extra = defaultExtra || (margin === true || value === true ? "margin" : "border"); + + return jQuery.access(this, function (elem, type, value) { + var doc; + + if (jQuery.isWindow(elem)) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement["client" + name]; + } + + // Get document width or height + if (elem.nodeType === 9) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], + // whichever is greatest + return Math.max( + elem.body["scroll" + name], doc["scroll" + name], + elem.body["offset" + name], doc["offset" + name], + doc["client" + name] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css(elem, type, extra) : + + // Set width or height on the element + jQuery.style(elem, type, value, extra); + }, type, chainable ? margin : undefined, chainable, null); + }; + jQuery.prototype.wrap = function (html) { + /// + /// Wrap an HTML structure around each element in the set of matched elements. + /// 1 - wrap(wrappingElement) + /// 2 - wrap(function(index)) + /// + /// + /// A selector, element, HTML string, or jQuery object specifying the structure to wrap around the matched elements. + /// + /// + + var isFunction = jQuery.isFunction(html); + + return this.each(function (i) { + jQuery(this).wrapAll(isFunction ? html.call(this, i) : html); + }); + }; + jQuery.prototype.wrapAll = function (html) { + /// + /// Wrap an HTML structure around all elements in the set of matched elements. + /// + /// + /// A selector, element, HTML string, or jQuery object specifying the structure to wrap around the matched elements. + /// + /// + + var wrap; + + if (jQuery.isFunction(html)) { + return this.each(function (i) { + jQuery(this).wrapAll(html.call(this, i)); + }); + } + + if (this[0]) { + + // The elements to wrap the target around + wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true); + + if (this[0].parentNode) { + wrap.insertBefore(this[0]); + } + + wrap.map(function () { + var elem = this; + + while (elem.firstElementChild) { + elem = elem.firstElementChild; + } + + return elem; + }).append(this); + } + + return this; + }; + jQuery.prototype.wrapInner = function (html) { + /// + /// Wrap an HTML structure around the content of each element in the set of matched elements. + /// 1 - wrapInner(wrappingElement) + /// 2 - wrapInner(function(index)) + /// + /// + /// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the content of the matched elements. + /// + /// + + if (jQuery.isFunction(html)) { + return this.each(function (i) { + jQuery(this).wrapInner(html.call(this, i)); + }); + } + + return this.each(function () { + var self = jQuery(this), + contents = self.contents(); + + if (contents.length) { + contents.wrapAll(html); + + } else { + self.append(html); + } + }); + }; + jQuery.fn = jQuery.prototype; + jQuery.fn.init.prototype = jQuery.fn; + window.jQuery = window.$ = jQuery; +})(window); \ No newline at end of file diff --git a/packages/jQuery.3.2.1/Content/Scripts/jquery-3.2.1.js b/packages/jQuery.3.2.1/Content/Scripts/jquery-3.2.1.js new file mode 100644 index 0000000..d2d8ca4 --- /dev/null +++ b/packages/jQuery.3.2.1/Content/Scripts/jquery-3.2.1.js @@ -0,0 +1,10253 @@ +/*! + * jQuery JavaScript Library v3.2.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2017-03-20T18:59Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + + + + function DOMEval( code, doc ) { + doc = doc || document; + + var script = doc.createElement( "script" ); + + script.text = code; + doc.head.appendChild( script ).parentNode.removeChild( script ); + } +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.2.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); + }, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE <=9 - 11, Edge 12 - 13 + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.3 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-08-08 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true && ("form" in elem || "label" in elem); + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + disabledAncestor( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9-11, Edge + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( el ) { + el.className = "i"; + return !el.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + }); + + // ID filter and find + if ( support.getById ) { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( el ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll(":enabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll(":disabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( (oldCache = uniqueCache[ key ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( el ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Simple selector that can be filtered directly, removing non-Elements + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + // Complex selector, compare the two sets, removing non-Elements + qualifier = jQuery.filter( qualifier, elements ); + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; + } ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( nodeName( elem, "iframe" ) ) { + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( jQuery.isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && jQuery.isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( jQuery.isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ jQuery.camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ jQuery.camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( jQuery.camelCase ); + } else { + key = jQuery.camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + jQuery.contains( elem.ownerDocument, elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, + scale = 1, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + do { + + // If previous iteration zeroed out, double until we get *something*. + // Use string for doubling so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + initialInUnit = initialInUnit / scale; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Update scale, tolerating zero or NaN from tween.cur() + // Break the loop if scale is unchanged or perfect, or if we've just had enough. + } while ( + scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations + ); + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); + +var rscriptType = ( /^$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
    " ], + col: [ 2, "", "
    " ], + tr: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + + _default: [ 0, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); +var documentElement = document.documentElement; + + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 only +// See #13393 for more info +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: jQuery.isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( ">tbody", elem )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rmargin = ( /^margin/ ); + +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + div.style.cssText = + "box-sizing:border-box;" + + "position:relative;display:block;" + + "margin:auto;border:1px;padding:1px;" + + "top:1%;width:50%"; + div.innerHTML = ""; + documentElement.appendChild( container ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = divStyle.marginLeft === "2px"; + boxSizingReliableVal = divStyle.width === "4px"; + + // Support: Android 4.0 - 4.3 only + // Some styles come back with percentage values, even though they shouldn't + div.style.marginRight = "50%"; + pixelMarginRightVal = divStyle.marginRight === "4px"; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + + "padding:0;margin-top:1px;position:absolute"; + container.appendChild( div ); + + jQuery.extend( support, { + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelMarginRight: function() { + computeStyleTests(); + return pixelMarginRightVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a property mapped along what jQuery.cssProps suggests or to +// a vendor prefixed property. +function finalPropName( name ) { + var ret = jQuery.cssProps[ name ]; + if ( !ret ) { + ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; + } + return ret; +} + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i, + val = 0; + + // If we already have the right measurement, avoid augmentation + if ( extra === ( isBorderBox ? "border" : "content" ) ) { + i = 4; + + // Otherwise initialize for horizontal or vertical properties + } else { + i = name === "width" ? 1 : 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // At this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + + // At this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // At this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with computed style + var valueIsBorderBox, + styles = getStyles( elem ), + val = curCSS( elem, name, styles ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test( val ) ) { + return val; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && + ( support.boxSizingReliable() || val === elem.style[ name ] ); + + // Fall back to offsetWidth/Height when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + if ( val === "auto" ) { + val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ]; + } + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + + // Use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + "float": "cssFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + if ( type === "number" ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = jQuery.camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + } ) : + getWidthOrHeight( elem, name, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = extra && getStyles( elem ), + subtract = extra && augmentWidthOrHeight( + elem, + name, + extra, + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ); + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ name ] = value; + value = jQuery.css( elem, name ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = jQuery.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 13 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( jQuery.isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + jQuery.proxy( result.stop, result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnothtmlwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnothtmlwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( type === "string" ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = value.match( rnothtmlwhite ) || []; + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, isFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +} ); + +jQuery.fn.extend( { + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +} ); + + + + +support.focusin = "onfocusin" in window; + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = jQuery.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = jQuery.isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 13 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available, append data to url + if ( s.data ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + "throws": true + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( jQuery.isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( "